Оптимизатор угловой сборки - TypeError: this._createContainer не является функцией - PullRequest
0 голосов
/ 11 июня 2019

Компиляция приложения Angular 7.2.5 с --prod приводит к странной ошибке во время выполнения.

Трассировка стека

ERROR TypeError: this._createContainer is not a function
    at bg.pa (Viewer.js.pre-build-optimizer.js:143)
    at new bg (Modeler.js.pre-build-optimizer.js:129)
    at Qg.ngOnInit (diagram.component.ts:105)
    at core.js.pre-build-optimizer.js:28285
    at core.js.pre-build-optimizer.js:29961
    at Sr (core.js.pre-build-optimizer.js:29900)
    at ao (core.js.pre-build-optimizer.js:30868)
    at core.js.pre-build-optimizer.js:30811
    at Object.updateDirectives (diagram-wrapper.component.html:1)
    at Object.ro [as updateDirectives] (core.js.pre-build-optimizer.js:30799)

Однако Viewer.js.pre-build-optimizer.js файл действительно включает в себя функцию _createContainer

export default function Viewer(options) {
  options = assign({}, DEFAULT_OPTIONS, options);
  this._moddle = this._createModdle(options);        // works
  this._container = this._createContainer(options);  // <---

...

Viewer.prototype._createContainer = function(options) {
  var container = domify('<div class="bjs-container"></div>');

  assign(container.style, {
    width: ensureUnit(options.width),
    height: ensureUnit(options.height),
    position: options.position
  });

  return container;
};

Библиотека не является родной Angular, это https://github.com/bpmn-io/bpmn-js
Я понятия не имею, куда идти с этим, и я бынравится поддерживать оптимизатор сборки.

Пара скриншотов

enter image description here

enter image description here

1 Ответ

1 голос
/ 04 июля 2019

Я столкнулся с той же проблемой. В моем случае решение заключалось в добавлении figure.js зависимости к package.json . Как это:

"dependencies": {
    ...
    "diagram-js": "^4.0.0"
    ...

bpmn.js записывается с библиотекой diagram.js , и эта функция (_createContainer) наследуется от нее. При разработке приложения npm загрузка всех зависимостей локально в каталог node_modules . Но когда вы пытаетесь собрать версию prod , вы должны указать все библиотеки, которые используются вашим приложением.

...