2014-09-04 53 views
1

我有一个包含2个requirejs模块凉亭包 -鲍尔+ 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模块组成的凉亭包的最佳解决方案,而无需在父项目中手动配置rjs packages键?

我希望能够成功地从bower.json中自动构建我的rjs配置,如使用grunt bower和其他npm构建模块所看到的。

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

我还怀疑可能有办法将模块连接成单个文件,但我有点不确定如何操作。

回答

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。