2012-11-28 152 views
2

当我用r.js构建一个项目(我通过grunt来做,但是我离题了),它会uglifies和压缩项目的所有javascript文件,并将它们包含在build文件夹中,即使所有这些文件已被压缩成一个单一的JavaScript文件,不再使用他们的个人形式。如何防止requirejs包含所有源文件并仅包含模块文件?

我使用模块,所以我不能使用“出”标志b/c它不兼容。我使用grunt-contrib-clean来清理所有额外的文件,但是如果我可以避免将它们包括在首位,这将是理想的。

这里是我的咕噜options.js:

module.exports = { 
    appDir: 'src', 
    baseUrl: 'js/', 
    mainConfigFile: 'src/js/common.js', 
    dir: 'www', 
    modules: [ 
    { 
     name: 'common', 
     include: [ 
      'jquery', 
      'underscore', 
      'handlebars', 
      'hbs', 
      'i18nprecompile', 
      'json2', 
      'Class' 
     ] 
    }, 
    { 
     name: 'app/page1', 
     exclude: ['common'] 
    }, 
    { 
     name: 'app/page2', 
     exclude: ['common'] 
    } 
    ] 
}; 

当它建立,它包含lib文件夹中的所有文件(在需要的时候只有一个是require.js),它包括变丑所有版本由page1和page2导入的JavaScript文件,即使所有这些文件都已合并到page1.js和page2.js中。

我是否错过了一些东西,或者是发布后清理简单的生活事实?

回答

1

可以简单地固定设置removeCombined为false:

//If set to true, any files that were combined into a build layer will be 
    //removed from the output folder. 
    removeCombined: false, 

在深入细节上的任何其他构建选项can be found in this example file

1

要做到这一点,你可以使用:

skipDirOptimize: true, 
removeCombined: true 

skipDirOptimize: true将防止requirejs优化其他文件

removeCombined: true将删除所有相结合,模块文件

相关问题