是否可以从优化的 RequireJS/r.js 包中导入单个模块?
我有一个 javascript 项目分为两个独立的组件 - 'MyLibrary' 和 'MyApplication'
MyLibrary 由两个独立的模块组成,“MyModule1”和“MyModule2”。
在开发模式下,我可以使用 RequireJS 和 MyApplication 中的常规 define(['MyLibrary/MyModule1'],function(){}) 语法导入这些模块中的每一个。
但是,一旦通过 r.js 运行 MyLibrary,这似乎不再可能 - 似乎不再有直接引用内部模块的方法?
我可以从编译/优化的源代码中看到每个模块都有 define() block ,但是我的应用程序中的 RequireJS 似乎无法直接引用这些 block 。
这是否可能,或者我是否需要将我的整个应用程序捆绑到一个文件中才能工作。
编辑:RequireJS 优化阶段正在我的 Play 框架中完成,我对构建配置的控制最小。
({appDir: "javascripts",
[info] baseUrl: ".",
[info] dir:"javascripts-min", mainConfigFile: "javascripts/build.js", modules: [{name: "main"}]})
最佳答案
为了使用库中的模块,您需要指示 RequireJS 如何找到这些模块。在 main.js 中你需要有这样的东西:
require.config({
// ...
paths: {
// ...
'MyLibraryBundleName': 'dist/MyLibraryFile',
// ...
},
// ...
bundles: {
//...
'MyLibraryBundleName': ['MyLibrary/MyModule1', 'MyLibrary/MyModule2'],
//...
}
});
当 MyApplication 引用这样的模块时:
define(['MyLibrary/MyModule1'],function(){})
... 正如您提到的,RequireJS 将查找“MyLibrary/MyModule1”并将其放入“ bundle ”部分,然后检查“路径”部分以找到实际文件“dist/MyLibraryFile”将被加载。
关于javascript - RequireJS - 在 r.js 优化包中导入模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17924390/