我是使用RequireJS的新手,所以我请耐心等待。 我'使用AMD styles / require.js / backbone ...开发一个JS应用程序,它有两个版本: 1.开发版 2.在构建过程中使用r.js的优化版本
问题在于两个文件: 的 ObjA.js
define(function() {
var ObjA = {
a: "A"
};
return ObjA;
});
ObjB.js
define(function() {
var ObjB = {
"B": "B",
"B.A": "B.A",
};
return ObjB;
});
问题是在优化过程之后我创建了一个新的" concate"文件包含两个文件,所以我用一个文件完成:
OptimizedFile.js
define(function() {
var ObjA = {
a: "A"
};
return ObjA;
});
define(function() {
var ObjB = {
"B": "B",
"B.A": "B.A",
};
return ObjB;
});
然后我尝试加载优化文件,如:
if (true) {
require(["src/Objects/OptimizedFile"], function (data) {
onload(data);
});
}
问题是只返回第一个对象,因为第一个'返回'而猜测。 有没有办法使用require.js和文件的优化版本来获取这两个对象? 或者我试图做一些不可能的事情? 我这样做是因为这个优化文件只能通过请求加载,只有条件为真,这就是我在构建过程中不包含文件的原因。 任何建议将不胜感激。
答案 0 :(得分:0)
您不能简单地将匿名模块文件连接在一起,因为它们没有与之关联的模块名称(因此其他require()
和define()
调用无法正确解析)。
您需要执行标准的RequireJS构建 - http://requirejs.org/docs/optimization.html(将根据模块的文件路径插入模块名称),或者将模块名称硬编码到模块中。但硬编码模块名称不被视为最佳实践。