Grunt速度:直接指定任务与组合

时间:2014-01-14 05:44:38

标签: gruntjs abstraction command-line-interface

使用Grunt时,在注册任务时,使用已经注册的任务的速度要慢得多,可能有多个自己的子任务,而不是直接从initConfig使用任务,甚至写作注册中的手工功能?这是一个例子:

从命令行指定grunt minify的速度要慢多少:

grunt.registerTask('minify', ['preprocessed', 'nonprocessed']);
gruntregisterTask('preprocessed', ['sass:convert', 'haml:convert']);
grunt.registerTask('nonprocessed', ['uglify', 'cssmin', 'htmlmin', 'phpmin']);

比你创建minify这样的任务:

grunt.registerTask('minify', ['sass:convert', 'haml:convert', 'uglify', 'cssmin', 'htmlmin', 'phpmin']);

我必须相信至少有一些减速,因为Grunt必须经历更多步骤来“看到”每个抽象级别的任务,但我只是想知道是否需要担心只有数千个模块,每个任务有数十个子任务等,或者它也会影响较小的项目。

1 个答案:

答案 0 :(得分:2)

您可以使用time-grunt自行测试。

// Gruntfile.js
module.exports = function (grunt) {
    // require it at the top and pass in the grunt instance
    require('time-grunt')(grunt);

    grunt.initConfig();
}

就我个人而言,我从未注意到通过指定更多别名而不是更少的速度来降低任何速度,如果速度减慢,它将在毫秒中。看到完整的测试套件会很有趣。