Wijmo ExcelImportExport в проекте Angular 2 "window.require не является функцией" ошибка
Я использую текущую сборку Wijmo (5.20172.359) в проекте Angular 2 (Angular 4.4.4, TypeScript 2.5.3). Все, что я использовал (FlexGrid, FlexPie, FlexCharts) работает нормально, однако...
Я пытаюсь интегрировать функции импорта из Excel и использую проект ExcelImportExport, включенный в образцы TS/Angular2, загруженные вместе со сборкой, и при сборке получаю следующую ошибку:
Uncaught TypeError: window.require is not a function
at Object../node_modules/wijmo/wijmo.xlsx.js (app.js:86218)
at __webpack_require__ (app.js:678)
at fn (wijmo.grid.xlsx.js:13)
at Object../node_modules/wijmo/wijmo.grid.xlsx.js (app.js:86158)
at __webpack_require__ (app.js:678)
at fn (wijmo.grid.xlsx.js:13)
at Object../app/home/components/import-grid/import-grid.component.ts (app.js:12533)
at __webpack_require__ (app.js:678)
at fn (wijmo.grid.xlsx.js:13)
at Object../app/home/home.module.ts (app.js:19226)
У меня есть следующий импорт в компоненте:
import * as JSZip from 'jszip';
import * as wjcGrid from 'wijmo/wijmo.grid';
import * as wjcCore from 'wijmo/wijmo';
import * as wjcXlsx from 'wijmo/wijmo.xlsx';
import * as wjcGridXlsx from 'wijmo/wijmo.grid.xlsx';
import { WjGridModule } from 'wijmo/wijmo.angular2.grid';
И проблема исчезнет, если я уберу следующее:
import * as wjcGridXlsx from 'wijmo/wijmo.grid.xlsx';
Однако (очевидно) функция импорта в Excel требует wjcGridXlsx, так что это просто указывает мне, в чем заключается конкретная проблема.
Мне неясно, как решить эту проблему.
Модуль wijmo.xlsx, кажется, является оберткой вокруг https://github.com/SheetJS/js-xlsx, и я могу найти некоторые ссылки на ошибки, реализующие это, но ничего, что не приводит меня к решению.
Я использую webpack, а не Angular CLI.
1 ответ
Импорт библиотеки jszip с <script>
тег в файле index.html решает проблему. Я хотел бы найти решение веб-пакета, но это по крайней мере решает проблему.
<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/2.5.0/jszip.min.js"></script>