【问题标题】:Built RequireJS app won't load构建的 RequireJS 应用程序不会加载
【发布时间】:2014-01-10 22:19:23
【问题描述】:

所以,我使用 grunt-require 构建了我的 RequireJS 应用程序,我相信它在幕后使用了 r.js。但是,在运行应用程序时,我每次都会得到这个:

Uncaught Error: Module name "underscore" has not been loaded yet for context: _. Use require([])
http://requirejs.org/docs/errors.html#notloaded require-2.1.9.min.js:8
GET http://localhost:8080/resources/js/app/App.js 404 (Not Found) require-2.1.9.min.js:34
Uncaught Error: Script error for: app/App
http://requirejs.org/docs/errors.html#scripterror

我的“主”脚本位于 app/Main.js 中,如下所示:

require(['common'], function() {
    'use strict';

    require(['app/App'], function(app) {
        app.start();
    });
});

然后是 grunt-require 的构建选项:

requirejs: {
    options: {
        baseUrl: 'resources/js',
        dir: 'resources/js/build',
        main: 'app/Main',
        out: null,
        optimize: 'uglify2',
        skipDirOptimize: true,
        priority: ['common'],
        preserveLicenseComments: false,
        modules: [
            {
                name: 'common'
            },{
                name: 'app/Main',
                exclude: ['common'],
                include: ['app/App']
            }
        ],
        paths: { ... },
        shim: { ... }
    }
}

如您所见,我已将 app/App 包含在 app/Main.js 的构建中。

它按预期分别加载 Main.js 和 common.js,但随后它尝试分别加载 app/App.js。当我查看 Main.js 的构建版本时,我看到 app/App.js 实际上已经内置。

任何想法为什么尝试单独加载 app/App.js?

【问题讨论】:

  • 您可能需要重新审视一些事情,但首先,require 中的 require 似乎很可疑。
  • 您是否按照错误消息中的link 操作?如果是,那么您应该在问题中提及这一点。

标签: javascript build requirejs gruntjs r.js


【解决方案1】:

看来,您在构建配置中忘记了findNestedDependencies : true 选项,并且您的嵌套需求没有加载。见其description。

【讨论】:

  • 似乎有帮助,但我遇到了加载下划线的问题。一旦我解决了这个问题,如果实际上仍然需要此配置选项,我将报告并将其标记为答案。再次感谢安德烈!
  • 这就是解决方案!乌克兰再次拯救了这一天:)
猜你喜欢
  • 1970-01-01
  • 2015-04-20
  • 1970-01-01
  • 2012-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多