如何根据输入文件名指定输出文件名?

时间:2013-11-25 14:54:05

标签: gruntjs google-closure-compiler

如何根据输入文件名指定输出文件名?

我特意尝试使用grunt任务(grunt-closure-toolsgrunt-closure-compiler)来编译(缩小)多个javascript文件,让我们说所有令人满意的'/source/**/*.js'并希望以格式输出它们$(original_file_path_without_extension).min.js

在我看过的所有样本中,输出仅指定为单个文件,但我需要将每个文件分别缩小并放入原始文件来源的同一文件夹中。

2 个答案:

答案 0 :(得分:2)

最后,我想出了配置。诀窍是动态构建文件对象(如here所述)。 grunt-closure-tools的配置如下所示:

closureCompiler: {
    options: {
        // .. YOUR OPTIONS (ommited)
    },
    minify: {
        files: [
            {
                expand: true,
                src: ['source/**/*.js', '!source/**/*.min.js'],
                ext: '.min.js'
            }
        ]
    }
}

答案 1 :(得分:0)

Closure-compiler旨在将所有javascript同时编译为单个文件,以最大限度地减少请求。实际上只有两个用例支持单独的输出文件:

多个模块

为了保留重命名引用,您必须同时编译文件。这样做和维护单独文件的方法是使用模块。见How do I split my javascript into modules using Google's Closure Compiler?

非相关文件

如果您的文件没有相互依赖关系,那么您只需多次运行您的grunt任务 - 每个文件一个。