如何在grunt中映射任务名称?

时间:2014-01-21 06:51:52

标签: node.js gruntjs

我无法理解grunt如何与Gruntfile.js匹配任务:

module.exports = function (grunt) {
grunt.initConfig({
    concat: {
        dist: {
            src: ['src/*.js'],
            dest: 'dest/all.js'
        }
    }

});
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.registerTask('default', ['concat']);

};

这是一个有效的配置。但我不知道咕噜咕噜如何将'concat''grunt-contrib-concat'匹配。

grunt是否修剪' grunt-contrib - '前缀以将' concat '与' grunt-contrib-concat '匹配?

2 个答案:

答案 0 :(得分:3)

首先,我们查看grunt-contrib-concat source code

grunt.registerMultiTask('concat', 'Concatenate files.', function() {

查看grunt creating tasks docs传递给任务注册函数的第一个参数是任务的名称

 grunt.registerMultiTask(taskName, [description, ] taskFunction)

 grunt.registerTask(taskName, [description, ] taskFunction)

Consclusion

  • 没有“神奇”的名字,也没有“grunt keywords”
  • 您的自定义任务和任务插件(甚至是grunt-contrib ..)
  • 之间没有区别
  • 用于创建任务的 API 非常简单。

答案 1 :(得分:0)

  

contrib-less,contrib-jade,contrib-concat .... 所以 contrib 只是表示这些插件是由 Grunt社区开发者提供的以及更少,jade,concat表示您希望在项目中使用的模块,如 gruntfile.js 中所述。

所以当你说:

grunt.loadNpmTasks('grunt-contrib-concat')

加载提到的模块。

但是为了让你在解雇 grunt 时能够正常工作,你实际上必须注册它。

grunt.registerTask('default', ['concat','jade','less']);
grunt.registerTask('test', ['concat','jade','less']);
grunt.registerTask('dist', ['concat','jade','less','uglify']);

正如您在生产中看到的,我们可能想要 uglify ,因此我们可以通过' dist '注册我们的任务。< / p>