我使用requirejs构建和应用程序,并使用它通过文本插件加载html模板和单个配置文件。
连接之后,在JS中内联了html模板,这很好,但是我需要将config.json文件保留为外部加载的文件,就像连接之前一样。
主视图的示例代码
define([
'jquery',
'underscore',
'backbone',
'lib/text!templates/main.html',
'lib/text!config.json',
], function($, _, Backbone, projectListTemplate, Config) {
var MainView = Backbone.View.extend({});
})
这是我的构建文件
({
appDir: './../public',
baseUrl: 'static/js/app',
dir: './../dist',
modules: [
{
name: 'main'
}
],
fileExclusionRegExp: /^(r|build)\.js$/,
exclude: ['config.json'],
optimizeCss: 'standard',
removeCombined: true,
paths: {
jquery: 'lib/jquery-2.0.3.min',
waypoints: 'lib/waypoints.min',
underscore: 'lib/underscore',
backbone: 'lib/backbone',
text: 'lib/text',
},
shim: {
underscore: {
exports: '_'
},
backbone: {
deps: [
'underscore',
'jquery',
'waypoints'
],
exports: 'Backbone'
},
}
})
答案 0 :(得分:2)
您应该以与包含文件相同的方式排除文件。试试这个:
exclude: ['lib/text!config.json']
但我刚停止使用这种方法,因为它需要在构建阶段存在config.json文件。相反,我正在使用嵌套的require调用(您可以在define
d模块中使用require来在运行时加载文件)。与define
不同,嵌套的require
可能不包含在构建过程中(默认情况下它们不是),验证阶段也没问题。
请注意,这种方法至少有一个缺点:
嵌套的require调用也是异步的。但在我的情况下这不是问题。