我有一个相当大的项目,我正在尝试将所有JS文件连接到一个文件中。我已经能够做到这一点,但我在实际将两个文件实现到代码中时遇到了麻烦。
我的Gruntfile有一个连接任务:
requirejs: {
compile: {
options: {
baseUrl: "<%= yeoman.app %>",
mainConfigFile: "<%= yeoman.app %>/config.js",
include: ["config"],
out: "<%= yeoman.app %>/dist/main.js"
}
}
},
同样,这很好用。我的config.js包含项目中使用的所有库,模型,帮助器,集合和视图:
require.config({
paths: {
// path configuration assumes .js suffix
// Libraries
'jquery': 'js/libs/jquery-1.8.2.min',
// custom version of jQM, see comments section in library for custom change log
'jQM': 'js/libs/jquery.mobile-1.2.0-CUSTOM',
//'jQUI': 'js/libs/jquery-ui-1.8.24.dev.min',
'Underscore': 'js/libs/underscore',
'JSON2': 'js/libs/json2',
'Backbone': 'js/libs/backbone',
etc...
},
shim: {
'jQMConfig': {
//deps: ['jQUI'] // use jQUI as dependency if jQUI is required. see https://github.com/jquery/jquery-mobile/issues/5119
deps: ['jquery']
},
'jQM': {
deps: ['jQMConfig']
},
etc...
});
require(['js/router']);
最后,在我的HTML代码中,我包含了这两个脚本:
<script type="text/javascript" src="dist/main.js"></script>
<script data-main="config" src="js/libs/require-2.1.15.min.js"></script>
这是我在控制台“定义未定义”的错误,并且仍在调用js /文件夹中的所有文件。请指出我正确的方向。
答案 0 :(得分:1)
您必须先包含require.js
文件,同时您可以指定data-main
作为主文件。
在html中包含脚本,如下所示:
<script data-main="dist/main" src="js/libs/require.js"></script>