如何将Closure Compiler与grunt-requirejs一起使用?

时间:2014-01-28 17:48:54

标签: javascript requirejs gruntjs google-closure-compiler grunt-requirejs

这是来自我的Gruntfile:

requirejs: {
  compile: {
    options: {
      almond: true,
      optimize: 'closure',
      baseUrl: '<%= cfg.src %>/scripts',
      mainConfigFile: '<%= cfg.src %>/scripts/config.js',
      out: '<%= cfg.staticDist %>/scripts/all.js',
      deps: ['app', 'config', 'bluebird', 'jquery']
    }
  }
},

当我将optimize设置为closure时,grunt-requirejs会将此内容写入控制台:

Running "requirejs:compile" (requirejs) task
>> Error: Error: optimizer with name of "closure" not found for this environment
>>     at Object.optimize.js (/Users/dan/Documents/Projects/test/node_modules/grunt-requirejs/node_modules/requirejs/bin/r.js:24632:27)

grunt-requirejs是否支持使用Closure Compiler进行优化?我需要把它放在哪里?

2 个答案:

答案 0 :(得分:1)

我认为您要在此处执行的操作是,您希望在没有优化的情况下使用更新更新的grunt-contrib-requirejs

然后使用像grunt-closure-tools这样的grunt任务来优化组合文件。

I found a user on GitHub that has success with this.

答案 1 :(得分:1)

作为Allan saidasciidisco confirmed

  

我们摆脱了这一点。造成太多麻烦。此外,如果您处于犀牛环境中,r.js仅支持(如果我错了,请纠正我)。因为我们只是node,所以我们坚持使用uglify。

     

如果你真的不想使用Closure Compiler,我建议你在没有缩小的情况下运行任务。将grunt-closure-compiler之类的任务应用到流程后期的优化文件中。