Node.js 如何让grunt闭包编译器分别对目录中的每个文件应用最小化

Node.js 如何让grunt闭包编译器分别对目录中的每个文件应用最小化,node.js,gruntjs,google-closure-compiler,Node.js,Gruntjs,Google Closure Compiler,有没有一种方法可以让grunt闭包编译器将最小化分别应用于目录中的每个文件(覆盖原始文件),而不是生成单个文件作为输出。如果我不能覆盖原始文件,我很乐意将输出文件放在一个单独的输出目录中 通常情况下,生成单个文件的过程如下: grunt.initConfig({ 'closure-compiler': { frontend: { closurePath: '/src/to/closure-compiler', js: 'static/src/frontend

有没有一种方法可以让grunt闭包编译器将最小化分别应用于目录中的每个文件(覆盖原始文件),而不是生成单个文件作为输出。如果我不能覆盖原始文件,我很乐意将输出文件放在一个单独的输出目录中

通常情况下,生成单个文件的过程如下:

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'
      }
    }
  }
});

可以使用闭包编译器的模块选项生成多个输出文件。您必须将每个JavaScript文件列为自己的模块,因此如果您有许多JavaScript文件,这可能会非常乏味

模块选项没有很好的文档记录,但请参阅下面的帖子了解其工作原理:


正如另一个答案所示,您需要模块选项。然而,grunt闭包编译器实际上并不支持这一点

有一个支持模块的。它不使用标准的grunt文件配置,因此您不能使用全局模式来获取文件夹中的所有文件。我通过编写一个grunt任务来创建modules对象,并将其传递到closure编译器任务的配置中,从而解决了这个问题