使用 RequireJS 优化器时未调用主模块

时间:2021-01-25 12:27:23

标签: requirejs requirejs-optimizer

我有一个现有的 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 来实现吗?

0 个答案:

没有答案
相关问题