使用r.js时,为声明的依赖项获取"未捕获错误:脚本错误"

5 requirejs r.js

我在SO或Github上找不到我的问题的答案,所以我发布这个:

我为这个问题创建了一个repo:https: //github.com/saviomuc/requireJSMultiPage

我尝试为多页项目设置require.js.

当我运行页面时,一切都很好.但是当我尝试使用r.js优化文件时,我收到此错误:

GET http://localhost:63342/requirejs/www-build/js/library.js 404 (Not Found) require.js:7
Uncaught Error: Script error for: library
http://requirejs.org/docs/errors.html#scripterror 
Run Code Online (Sandbox Code Playgroud)

设置如下:

js/app/app1.js
js/app/app1jq.js
js/lib/require.js
js/lib/library.js
main-page1.js
Run Code Online (Sandbox Code Playgroud)

目前,require.js加载包含此代码的文件(main-page1.js)

require(['common','app/app1','app/app1jq'], function (config) {});
Run Code Online (Sandbox Code Playgroud)

common.js包含

    requirejs.config({
        paths: {
            library: 'lib/library'
        }
    });
    console.log('This is the config!');
Run Code Online (Sandbox Code Playgroud)

app1jq.js包含

    define(function (require) {
        var library = require('library');
        console.log('This is dependent on library');
    });
Run Code Online (Sandbox Code Playgroud)

这可能是优化器的问题吗?或者我做错了什么?

最好,提前谢谢你!

Lou*_*uis 6

问题是common不保证首先加载.因此,当RequireJS到达时require('library'),配置可能已设置,也可能未设置.当您致电时,require(['a', 'b', 'c'], function () {})RequireJS可以先加载c,也可以b先加载,也可以先加载a.订单未设置.唯一的保证是在调用回调之前将加载所有模块.

所以改变main-page1.js它包含:

require(['common'], function () {
    require(['app/app1','app/app1jq']);
});
Run Code Online (Sandbox Code Playgroud)

这将确保common在依赖于您的配置的任何代码之前加载.