0

我有一个 Angular 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

所以我去了要求页面“常见错误”并尝试遵循他们的一些建议,然后在两个非 dragula 相关脚本之间出现此错误

Mismatched anonymous define() module: blah blah

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

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

4

1 回答 1

0

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

于 2017-02-18T21:17:59.220 回答