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

标签 javascript requirejs

是否可以从优化的 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/

相关文章:

javascript - toDate 不是使用 Firebase 的 React 中的函数错误

javascript - 限制 XML 文件中回显的 Ajax 回复数量

javascript - 相对于 body 而不是父 div 定位 div

javascript - 使用 JQuery 为 textarea 文本框添加水印

javascript - node.js + mikeal/request - 如何测量请求时间?

javascript - 带 knockout 的 RequireJs

angularjs - 使用 RequireJS 延迟加载 AngularJS 模块

javascript - json RequireJS 插件 + Jasmine

javascript - 设置 Karma 使用 jasmine、requirejs 和 React 运行测试

javascript - 为什么我的 jQuery 隐藏事件没有触发并且我的 Backbone subview 没有渲染?