我正在开发一个个人项目,我正在使用大量的JavaScript代码,并使用一些库和插件,如jQuery和Velocity.js。我不知道为什么我不能使它工作,我已经遵循RequireJS文档和许多教程,但我总是在控制台中收到错误。
这就是我网站的存放方式:
Main folder
|
|index.html
|
|
|——JS folder ——
|
|require.js
|config.js
|main.js
|
|————————
在index.html中我以这种方式调用RequireJS
<script data-main="js/config" src="js/require.js"></script>
在配置中,我有每个CDN存储库的路径,如下所示:
requirejs.config({
"baseUrl": "js",
"paths": {
"jquery": "//ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js",
"velocity": "//cdn.jsdelivr.net/velocity/1.2.2/velocity.min.js",
"velocity-ui": "//cdn.jsdelivr.net/velocity/1.2.2/velocity.ui.min.js",
"bootstrap": "//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js",
"main": "main"
}
});
在同一个文件(config.js)中,关闭requirejs.config之后我以这种方式调用main.js文件:
require(['main']);
在main.js中我使用jquery,velocity和velocity-ui。
require([ "jquery", "velocity", "velocity-ui" ], function ($, Velocity) {
//my code here
});
之后,我总是在控制台中遇到错误,比如
Error: Script error for: jquery
http://requirejs.org/docs/errors.html#scripterror
---
Error: Script error for: velocity
http://requirejs.org/docs/errors.html#scripterror
---
Error: Script error for: velocity-ui
http://requirejs.org/docs/errors.html#scripterror
我不知道我做错了什么......
答案 0 :(得分:1)
您应该删除路径中的.js
扩展名。 Requirejs Doc说
用于模块名称的路径不应包含扩展名,因为路径映射可能适用于目录。在将模块名称映射到路径时,路径映射代码将自动添加.js扩展名。
所以将config.js中的代码更改为以下内容:
requirejs.config({
"baseUrl": "js",
"paths": {
"jquery": "//ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min",
"velocity": "//cdn.jsdelivr.net/velocity/1.2.2/velocity.min",
"velocity-ui": "//cdn.jsdelivr.net/velocity/1.2.2/velocity.ui.min",
"bootstrap": "//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min",
"main": "main"
}
});
require(['main']);
&#13;
答案 1 :(得分:0)
您没有正确使用require.js。您应该只有一个require()
来电并给它回电。项目的所有其余文件都应该包含define()
。
示例:
main.js
应如下所示:
define([ "jquery", "velocity", "velocity-ui" ], function ($, Velocity) {
//my code here
// return something
});
并且在config.js
中你应该有类似的东西:
require(['main'], function (main) {
// do something with main module... like init stuff...
});