我是require.js的新手,发现文档很难理解。过了一会儿,我通过以下设置启动并运行了项目。
project
|
|--js
|--vendor
|--require.js
|--modernizr.js
|--jquery.js
|--modules
|--module1.js
|--module2.js
|--main.js
|--index.html
的index.html:
<!DOCTYPE html>
<html>
<head></head>
<body>
<script data-main="/js/main.js" src="/js/vendor/require.js"></script>
</body>
</html>
main.js
define([
"vendor/modernizr",
"modules/module1",
"modules/module2"
]);
模块/ module1.js
define(['vendor/jquery'], function () {
// Some module code like
$('#button').on('click', function(){});
});
如果我想在CSS的设置较少的情况下拥有一个导入文件(main.js),这是一个很好的设置吗?
答案 0 :(得分:1)
此设置通常是正确的方向,只需稍作修改即可。
对于模块,您需要为模块的每个依赖项传入匹配数量的参数。在这种情况下,您可能希望将$
分配给jQuery模块返回的内容,以便您可以在模块中实际使用$
:
define(['vendor/jquery'], function ($) {
// Some module code like
$('#button').on('click', function(){});
});
对于main.js,define()
调用应该是require()
调用,这样您就可以执行模块中的任何操作,而不是简单地将其注册为其他模块的模块执行:
require([
"vendor/modernizr",
"modules/module1",
"modules/module2"
], function(Modernizr, module1, module2) {
// do something with Modernizr, module1, module2
});