加载优化文件requireJS

时间:2013-04-19 13:48:18

标签: requirejs

我是使用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和文件的优化版本来获取这两个对象? 或者我试图做一些不可能的事情? 我这样做是因为这个优化文件只能通过请求加载,只有条件为真,这就是我在构建过程中不包含文件的原因。 任何建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

您不能简单地将匿名模块文件连接在一起,因为它们没有与之关联的模块名称(因此其他require()define()调用无法正确解析)。

您需要执行标准的RequireJS构建 - http://requirejs.org/docs/optimization.html(将根据模块的文件路径插入模块名称),或者将模块名称硬编码到模块中。但硬编码模块名称不被视为最佳实践。