Javascript RequireJS-在r.js优化包中导入模块

Javascript RequireJS-在r.js优化包中导入模块,javascript,requirejs,Javascript,Requirejs,是否可以从优化的RequireJS/r.js包中导入单个模块 我有一个javascript项目,分为两个独立的组件——“MyLibrary”和“MyApplication” MyLibrary由两个独立的模块组成,“MyModule1”和“MyModule2” 在开发模式下,我可以使用RequireJS从MyApplication中导入这些模块,并使用正常的define(['MyLibrary/MyModule1'],function(){})语法 然而,一旦通过r.js运行MyLibrary,

是否可以从优化的RequireJS/r.js包中导入单个模块

我有一个javascript项目,分为两个独立的组件——“MyLibrary”和“MyApplication”

MyLibrary由两个独立的模块组成,“MyModule1”和“MyModule2”

在开发模式下,我可以使用RequireJS从MyApplication中导入这些模块,并使用正常的define(['MyLibrary/MyModule1'],function(){})语法

然而,一旦通过r.js运行MyLibrary,这似乎就不可能了——似乎不再有直接引用内部模块的方法了

我可以从编译/优化的源代码中看到,每个模块都有define()块,但是我的应用程序中的RequireJS似乎无法直接引用这些块

这是可能的,或者我需要将整个应用程序捆绑到一个文件中才能工作

编辑: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'],
          //...
      }
  });
define(['MyLibrary/MyModule1'],function(){})
当MyApplication引用这样的模块时:

  require.config({
      // ...
      paths: {
          // ...
          'MyLibraryBundleName': 'dist/MyLibraryFile',
          // ...
      },
      // ...
      bundles: {
          //...
          'MyLibraryBundleName': ['MyLibrary/MyModule1', 'MyLibrary/MyModule2'],
          //...
      }
  });
define(['MyLibrary/MyModule1'],function(){})

。。。正如你所说,RequireJS将查找“MyLibrary/MyModule1”,并将在“bundles”部分找到它,然后检查“path”部分以找到将要加载的实际文件“dist/MyLibraryFile”。

你能发布你的r.js构建配置和任何其他相关代码吗?构建文件是由我使用的框架动态生成的(播放2.1),而且也没有太多。我还是要加上它。