main.js:
require.config({
baseUrl: 'js/',
paths: {
'd3': 'lib/d3',
'text': 'lib/text',
'jquery': 'lib/jquery',
'topojson': 'lib/topojson',
'statecodes': 'lib/statecodes',
'underscore': 'lib/underscore'
},
shim: {
'lib/bootstrap': {
deps: ['jquery']
},
'lib/backbone': {
deps: ['jquery', 'underscore'],
exports: 'Backbone'
},
'lib/wreqr': {
deps: ['lib/backbone']
},
'lib/marionette': {
deps: ['lib/wreqr'],
exports: 'Marionette'
}
}
});
var deps = [
'app',
'utils/dataserver',
'd3',
'text',
'jquery',
'topojson',
'statecodes',
'underscore',
'lib/bootstrap',
'lib/backbone',
'lib/marionette'
];
require(deps, function(app, ds) {
app.start();
ds.fetchall();
});
配置文件app.build.js:
({
baseUrl: "../js",
name: 'main',
mainConfigFile: '../js/main.js',
out: "../js/build.js"
})
通过运行r.js -o app.build.js
我期望优化器缩小并连接path
内的脚本。但它所做的只是缩小main.js
。我错过了什么?
r.js -o app.build.js
的输出:
Tracing dependencies for: main
Uglifying file: /Project/web/js/build.js
/Project/web/js/build.js
----------------
/Project/web/js/main.js
答案 0 :(得分:1)
您必须将依赖项的文字数组而不是变量deps,
作为require.
的第一个参数传递。否则,优化器不知道要包含哪些文件。
答案 1 :(得分:0)
r.js
只会跟踪它找到的应用程序所需的所有依赖项。您需要在require([], function() {});
内包含入口点main.js
,或者基本上包含require
块,该块应该包含在data-main
中定期使用RequireJS时指定的脚本中。