簡體   English   中英

RequireJS - 在r.js優化包中導入模塊

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM