我正在使用RequireJS 2.0.6。有时我的一个库(amplifyjs)会遇到一个问题。
项目:
libs/
amplify.js
handlebars.js
jquery.js
require.js
packages/
core/
main.js
index.html
main.js
我的main.js:
require.config({
paths: {
'jquery': '../libs/jquery',
'amplify': '../libs/amplify',
'handlebars': '../libs/handlebars'
},
shim: {
'jquery': {
exports: '$'
},
'amplify': {
deps: ['jquery'],
exports: 'amplify'
},
'handlebars': {
exports: 'handlebars'
}
},
packages: ['core'],
baseUrl: './packages/'
});
require(['jquery', 'amplify', 'handlebars', 'core'], function() {
});
的index.html:
<script type="text/javascript" data-main="main" src="libs/require.js"></script>
75%的工作时间,但有时我会收到此错误:
GET http://localhost:8888/aa/test/packages/libs/amplify.js 404 (Not Found)
Uncaught Error: Script error
http://requirejs.org/docs/errors.html#scripterror
路径错了!但我无法弄清楚为什么会这样?为什么有时呢?
(我很确定它必须对包执行某些操作,但我不知道为什么会这样做)
答案 0 :(得分:3)
我想出了另一种方法,它有效!
require.config({
paths: {
libs: '../libs'
},
packages: ['core'],
shim: {
'libs/amplify': {
deps: ['libs/jquery'],
exports: 'amplify'
},
'libs/handlebars': {
deps: ['libs/jquery'],
exports: 'handlebars'
},
'core': {
deps: ['libs/amplify', 'libs/handlebars']
}
}
});
答案 1 :(得分:0)
(我很确定它必须对包装做些什么,但我有 不知道为什么会这样做)
单词packages
指的是标准的CommonJS,因为requirejs支持加载CommonJS Packages目录结构中的模块,模块本身应该是RequireJS可以理解的模块格式。