如何在grunt中创建许多单独的uglify任务?

时间:2017-12-14 22:54:25

标签: javascript node.js gruntjs grunt-contrib-uglify

当我尝试创建许多uglify任务时,我会遇到错误。我必须评论并取消注释一项任务才能使一项任务正常工作。希望可以有人帮帮我。我需要两个使用此插件创建的sperate minified .js文件,但我无法弄明白。如果它可以在一个任务命令中创建两个任务,这将创建两个sperate缩小的.js文件,如下所述,这也是很好的。期待您的想法。

module.exports = function(grunt){

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

    grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    uglify:{
        t1:{
            files:{
                'build/scripts1.js' : ['abc.js', 'xc.js']

            }
        }
    },

    uglify:{
        t2:{
            files:{
                'build/scripts2.js' : ['123.js', 63a5.js]

            }
        }
    }
    });
};

1 个答案:

答案 0 :(得分:1)

您需要将Targets t1t2添加到单个uglify Task,如下所示:

<强> Gruntfile.js

module.exports = function (grunt) {

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

  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),

    uglify:{
      t1:{
        files:{
          'build/scripts1.js' : [ 'abc.js', 'xc.js' ]
        }
      },
      t2:{
        files:{
            'build/scripts2.js' : [ '123.js', '63a5.js' ]
        }
      }
    }
  });

  grunt.registerTask('default', ["uglify"]);
  grunt.registerTask('foo', ["uglify:t1"]);
  grunt.registerTask('quux', ["uglify:t2"]);
};

正在运行grunt

上面的Gruntfile.js有三个registerTask,即; defaultfooquux

  • 正在运行$ grunt将同时运行目标t1t2

  • 正在运行$ grunt foo只会运行目标t1

  • 正在运行$ grunt quux只会运行目标t2

fooquux都使用冒号表示法(即"uglify:t1""uglify:t2")来仅引用其中一个目标。

default任务仅引用uglify,这将导致uglify目标中的所有目标(无论多少)都在运​​行。