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>
Другие вопросы по тегам