我在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)
这可能是优化器的问题吗?或者我做错了什么?
最好,提前谢谢你!
问题是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在依赖于您的配置的任何代码之前加载.
| 归档时间: |
|
| 查看次数: |
28205 次 |
| 最近记录: |