加载优化后的文件requireJS



我是RequireJS的新手,所以请耐心等待。我正在开发一个JS应用程序,使用AMD的样式/require.js/backbone…它们有两个版本:1. 开发版2. 在构建过程中使用rjs的优化版本

问题在两个文件中: 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和优化版本的文件这两个对象?还是我在尝试做一些不可能的事?我这样做是因为这个优化的文件只通过请求加载,只有当条件为真时,这就是我不包括文件在构建过程中的原因。

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

您要么需要做一个标准的RequireJS构建- http://requirejs.org/docs/optimization.html(它将根据模块的文件路径插入模块名称),要么将模块名称硬编码到您的模块中。但是硬编码模块名并不是最佳实践。

最新更新