如何让grunt-closure-compiler在目录中单独对每个文件应用最小化

时间:2014-05-20 21:53:36

标签: node.js gruntjs google-closure-compiler

有没有办法让grunt-closure-compiler在目录中单独对每个文件应用最小化(覆盖原始文件),而不是生成单个文件作为输出。如果我无法覆盖原始文件,我很乐意将输出文件放在单独的输出目录中。

https://github.com/gmarty/grunt-closure-compiler

通常,程序就像生成一个文件一样:

grunt.initConfig({
  'closure-compiler': {
    frontend: {
      closurePath: '/src/to/closure-compiler',
      js: 'static/src/frontend.js',
      jsOutputFile: 'static/js/frontend.min.js',
      maxBuffer: 500,
      options: {
        compilation_level: 'ADVANCED_OPTIMIZATIONS',
        language_in: 'ECMASCRIPT5_STRICT'
      }
    }
  }
});

2 个答案:

答案 0 :(得分:0)

您可以使用Closure Compiler的module选项生成多个输出文件。您必须将每个JavaScript文件列为自己的模块,因此如果您有许多JavaScript文件,这可能会非常繁琐。

模块选项没有很好地记录,但请参阅下面的帖子以了解它是如何工作的:

答案 1 :(得分:0)

正如另一个答案所示,您需要模块选项。然而,grunt-closure-compiler实际上并不支持这一点。

fork of it支持模块。它没有使用标准的grunt文件配置,因此您无法使用通配模式来获取文件夹中的所有文件。通过编写一个grunt任务来创建模块对象并将其传递给闭包编译器任务的配置,我已经解决了这个问题。