我在SO或Github上找不到我的问题的答案,所以我发布了这个:
我为此问题创建了一个回购: 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
设置如下:
js/app/app1.js
js/app/app1jq.js
js/lib/require.js
js/lib/library.js
main-page1.js
目前require.js加载包含此代码的文件(main-page1.js)
require(['common','app/app1','app/app1jq'], function (config) {});
common.js包含
requirejs.config({
paths: {
library: 'lib/library'
}
});
console.log('This is the config!');
app1jq.js包含
define(function (require) {
var library = require('library');
console.log('This is dependent on library');
});
这可能是优化器的问题吗?或者我做错了什么?
最好,并提前感谢你!
答案 0 :(得分: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']);
});
这将确保在任何依赖于您的配置的代码之前加载common
。