AOT错误:未定义require(由ng2-dragula库引起)

时间:2017-02-18 00:50:22

标签: angular requirejs angular2-aot dragula ng2-dragula

我有一个角度2应用程序,并使用ng2-dragula库。一切都在开发(JIT编译)模式。当我使用AOT编译时,aot构建和汇总成功,但后来我在浏览器中收到此错误:

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

所以我进入了需求页面"常见错误"并尝试遵循他们的一些建议,然后在两个非拖拉相关的脚本

之间得到此错误
Mismatched anonymous define() module: blah blah

但是当在项目中没有添加require.js时,这些在AOT中可以正常工作。

有没有办法修改这些require语句以使其在AOT中工作?为什么我在JIT编译中没有收到此错误?相当困在这里。

1 个答案:

答案 0 :(得分:0)

我明白了。我不得不将node_modules / dragula / **添加到rollup-config插件部分的commonjs include部分(还必须添加atoa / ,ticky / ,contra / **,因为dragula使用它们我认为。)