我有一个现有的 angularJS 应用程序,它使用 RequireJS 作为模块加载器。一切正常,但我正在尝试使用优化器并遇到问题,第一个模块没有被调用!
这是我的 main.js
define(['lib/IE/isIE', 'lib/IE/isIE8', 'lib/IE/isIE9', 'lib/IE/isIE11', 'util/array', 'util/string', 'util/object', 'util/date'], function (isIE, isIE8, isIE9, isIE11) {
...
if (isIE) {
require(['xdomain', 'xhook'], init);
} else {
init({ slaves: function () { } });
}
}
并在 html 中:
<script data-main="main" data-handle-routes="true" data-html-target="document" src="~/Content/App/lib/requirejs.min.js"></script>
我将其更改为(添加 .min)以使用优化器:
<script data-main="main.min" data-handle-routes="true" data-html-target="document" src="~/Content/App/lib/requirejs.min.js"></script>
使用 main.min 运行网站时出现以下错误:
<块引用>requirejs.min.js:203 未捕获错误:未定义 main.min 调用 http://requirejs.org/docs/errors.html#nodefine 在 C (requirejs.min.js:203) 在 Object.completeLoad (requirejs.min.js:296) 在 HTMLScriptElement.onScriptLoad (requirejs.min.js:302)
查看 main.min.js 文件可以看到模块有如下定义:
define('main',['lib/IE/isIE', 'lib/IE/isIE8', 'lib/IE/isIE9', 'lib/IE/isIE11', 'util/array', 'util/string', 'util/object', 'util/date'], function (isIE, isIE8, isIE9, isIE11) {
...
}
因此,模块具有“主”ID。如果我手动将该 ID 替换为“main.min”,则应用程序将运行。 知道如何更改 ID 吗?这可以通过更改 build.js 来实现吗?