[英]RequireJS - Importing modules inside r.js optimized bundle
是否可以從優化的RequireJS / r.js包中導入單個模塊?
我有一個javascript項目分為兩個獨立的組件 - 'MyLibrary'和'MyApplication'
MyLibrary包含兩個獨立的模塊,'MyModule1'和'MyModule2'。
在開發模式中,我可以使用RequireJS導入每個模塊,並使用MyApplication中的普通定義(['MyLibrary / MyModule1'],function(){})語法。
然而,一旦通過r.js運行MyLibrary,這似乎不再可能 - 似乎沒有辦法直接引用內部模塊?
我可以從編譯/優化的源中看到每個模塊都有define()塊,但My Application中的RequireJS似乎不能直接引用它們。
這是可能的,還是我需要將整個應用程序捆綁到一個文件中才能使用。
編輯:我正在Play框架中完成RequireJS優化階段,並且我對構建配置的控制很少。
({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'並將其發現到'bundles'部分,之后將檢查'path'部分以找到將加載的實際文件'dist / MyLibraryFile' 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.