Пожалуйста, найдите ответ здесь:
У меня сборка заработала после того, как я заменил модули Wijmo AMD (из папки NpmImages\wijmo-amd-min) на модули CommonJS (из папки NpmImages\wijmo-commonjs-min). Похоже, это не проблема с Wijmo AMD, подробности ниже.
Ниже приведены подробности расследования. Проблема вызвана процессом Build Optimizer, управляемым флагом «--build-optimizer», значение true по умолчанию для сборок «—prod» с Angular 5 (false для Angular 4).
Сборка работает без проблем, если использовать неминифицированные модули Wijmo AMD из папки NpmImages\wijmo-amd-src.
Я проверил минифицированный модуль wijmo.js, и он абсолютно исправен (подробности ниже), а это значит, что Build Optimizer просто содержит ошибку, не позволяющую корректно разобрать минифицированный модуль AMD.
Ниже приведены некоторые сведения о том, как класс CollectionView экспортируется из модуля wijmo.js.
A. Неминифицированный wijmo.js: A.1) Вот объявление функции AMD «define»:
define(["require", "exports", "wijmo/wijmo"], function (require, exports, wjcSelf) {
A.2) Вот начало определения класса CollectionView:
var CollectionView = (function () {
function CollectionView(sourceCollection, options) {
var _this = this;
this._idx = -1;
this._srtDsc = new ObservableArray();
this._grpDesc = new ObservableArray();
A.3) Здесь оператор экспорта CollectionView: exports.CollectionView = CollectionView;
Обратите внимание, что он использует параметр «экспорт», переданный функции обратного вызова «define» в № 1 (выделен полужирным шрифтом).
Б. Теперь давайте проверим, как это выглядит в минимизированном модуле wijmo.js: Б.1) AMD определяет:
define(["require","exports","wijmo/wijmo"],function(t,e,n)
Обратите внимание, что параметр «экспорт» из A.1 переименован в «e». B.2) Начало определения класса CollectionView:
Mt=function(){function t(t,e){var n=this;this._idx=-1,this._srtDsc=new xt,this._grpDesc=new xt,
«var CollectionView» из A.1 здесь переименован в Mt. B.3) Заявление об экспорте
e.CollectionView=Mt;
«e» — это параметр «e» из функции обратного вызова «define» из B.1, которая является уменьшенной версией параметра «export» из A.1.
т.е. минифицированный модуль wijmo.js абсолютно корректно экспортирует CollectionView, и похоже, что проблема в Build Optimizer. Мы ничего не можем здесь сделать. Таким образом, обходной путь может заключаться в использовании неминифицированных модулей Wijmo AMD. Но, как я уже говорил, правильно использовать формат CommonJS, это избавит от подобных проблем!
~ Маниш
person
Manish Gupta
schedule
27.02.2018