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.


person Stephen R. Smith    schedule 11.10.2017    source источник


Ответы (1)


Импорт библиотеки jszip с тегом <script> в файле index.html решает проблему. Я хотел бы найти решение для веб-пакета, но это, по крайней мере, решает проблему.

<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/2.5.0/jszip.min.js"></script>
person Stephen R. Smith    schedule 13.10.2017