在 Grunt 中使用 uglify 设置目标文件夹

Setting the destination folder with uglify in Grunt

使用 G运行t 代码和文件夹结构如下所示,当我 运行 grunt uglify 时,结果是输出创建了子文件夹结构 \js\src\min 文件夹中,其中最深的文件夹 (src) 将包含缩小的文件。但我希望在 \min 文件夹根目录中创建缩小文件。

如果我将 dest 参数值设置为空:``,文件将创建在与 src 文件夹相同的文件夹中。

如果我将 dest 参数值设置为://js/min/js/min/,则不会创建任何内容。

如何直接在 min 文件夹的根目录中生成压缩文件?

module.exports = function(grunt){ // 1

grunt.initConfig({
  uglify: {
    my_target: {
      files: [{
          expand: true,
          src: 'js/src/*.js',
          dest: 'js/min/',
          ext : '.min.js',
      }]
    }
  }
});

  grunt.loadNpmTasks('grunt-contrib-uglify'); //https://www.npmjs.com/package/grunt-contrib-uglify


  grunt.registerTask('default', function() { // 4
      grunt.log.writeln('Hello, from the default grunt task!'); // 5
  });

}

Grunt 文档有一个相关部分是关于 building the files object dynamically.

特别感兴趣的是 "cwd" 属性:

All src matches are relative to (but don't include) this path.

这将允许我们通过将 "src" 值设置为 "cwd" 的值来删除不需要的路径。这意味着生成的源文件路径 将不会 在添加到 /js/min 文件夹时具有不需要的前缀(“/js/src/”)。

我们生成的 Grunt 文件如下所示:

module.exports = function (grunt) {

    grunt.initConfig({
        uglify: {
            my_target: {
                files: [{
                    expand: true,
                    cwd: 'js/src/',
                    src: '*.js',
                    dest: 'js/min/',
                    ext : '.min.js',
                }]
            }
        }
    });

    grunt.loadNpmTasks('grunt-contrib-uglify');

    grunt.registerTask('default', ['uglify']);

};