2017-02-18 5 views
0

У меня есть приложение с угловым 2 и я использую библиотеку ng2-dragula. Все работает в режиме разработки (JIT-компиляция). Когда я компилирую с АОТ, АОТ сборки и накопительный пакет успешно, но затем я получаю эту ошибку в браузере:Ошибка AOT: требование не определено (вызвано библиотекой ng2-dragula)

Uncaught ReferenceError: require is not defined 
at dragula.js:3 
at main-aot.js:6 

Эта ошибка происходит от этих линий в верхней части dragula.js файла.

var emitter = require('contra/emitter'); 
var crossvent = require('crossvent'); 
var classes = require('./classes'); 

Я пытался добавить requirejs в мой проект, а затем я получил эту ошибку:

Uncaught Error: Module name "contra/emitter" has not been loaded yet for context: _. Use require([]) 

http://requirejs.org/docs/errors.html#notloaded

Так что я пошел в требуют страницы «общие ошибки» и пытались после некоторых их предложения, а затем получили эту ошибку между двумя сценариями, не связанными с dragula

Mismatched anonymous define() module: blah blah 

, но они отлично работают сами по себе в AOT, когда require.js не добавляется в проект.

Есть ли способ изменить те запросы, которые требуют, чтобы эта работа работала в AOT? Почему я не получаю эту ошибку в компиляции JIT? Довольно застрял здесь.

ответ

0

Я понял. Мне пришлось добавить node_modules/dragula/** в раздел commonjs include секции rollup-config plugins (также необходимо было добавить atoa/, ticky/, contra/**, потому что dragula использует их, я думаю.)