Bower + RequireJS多个文件

时间:2014-09-04 16:29:02

标签: requirejs bower

我有一个包含2个requirejs模块的凉亭包 -

- src
 - a.js <- this is the primary package/amd module which lists b.js as a module dependency
 - b.js

所以我们最终得到这样的东西:

 // a.js
 define(['./b'], function(b){})

问题在于,当我将此包添加为单独项目的依赖项时,require.js配置将仅成功解析模块a的路径。

维护包含多个rjs模块的bower包的最佳解决方案是什么,而无需在父项目中手动配置rjs packages键?

我希望能够从bower.json成功自动构建我的rjs配置,就像grunt bower和其他npm构建模块一样。

部分我认为这是责任,因为应该有一个选项将包定义为多个文件。

我还怀疑可能有一种方法可以将模块连接到一个文件中,但我不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

我明白了。该解决方案涉及连接所述文件以制作一个凉亭包。

// This will build all 3 files into a single concatenated pkg
// 'efficient-frontier', 'everestjs', 'sem-campaign'
// nmp install -g rjs
// r.js -o require.build.js optimize=none
// Below is a file in my root named 'require.build.js'
({
    baseUrl: "",
    paths: {
      everestjs: './vendor/bower/everestjs/index',
      requirejs: './vendor/bower/requirejs/require',
      'jquery.cookie': './vendor/bower/jquery.cookie/jquery.cookie',
      'sem-campaign': 'dist/shared/sem-campaign',
      'efficient-frontier': 'dist/shared/efficient-frontier',
      jquery: './vendor/bower/jquery/jquery'
    },
    // Exclude the packages you expect to be included in the parent project
    exclude: ['jquery','jquery.cookie'],
    name: "sem-campaign",
    out: "./dist/sem-campaign.js"
})

最终的包装凉亭是3个连接的rjs模块。此示例中的包是sem-campaign。