Grunt:抽象出一些任务

时间:2015-12-29 11:08:32

标签: javascript gruntjs npm

我有一个包含大量grunt任务的项目,这些任务基本上构建了一个功能齐全的资产管道(转换,源图,缩小,md5文件名视觉)。这些任务大部分都是我在github上找到的开源任务,但也有一些我只是简单地在内容中找到了#34;与grunt.registerTask

现在我想创建另一个也使用这个任务的项目,但是我找不到如何为使用其他任务的Grunt创建npmTask的正确方法,因为它填充像Grunt从未为此设计。如何创建这样的东西?也许github上有一些项目做过这样的事情,我可以看看他们的设计吗?

1 个答案:

答案 0 :(得分:1)

您需要创建并加载自己的grunt任务 - 实际上非常简单。

  1. 创建任务 - 官方文档有一个示例,可以调用另外两个任务:http://gruntjs.com/creating-tasks#custom-tasks。将以下内容放在Gruntfile

    grunt.registerTask('hello', function() {
      grunt.log.write('hello');
      grunt.task.run(['task1', 'task2'])
    });
    
  2. 然后用一些包装代码将该任务移到自己的文件和文件夹(如tasks/hello.js)中

    'use strict';
    
    module.exports = function(grunt) {
      grunt.registerTask('hello', function() {
        grunt.log.write('hello');
        grunt.config.set('task1.opt1', 1234);
        grunt.task.run(['task1', 'task2'])
      });
    };
    
  3. 然后在Gruntfile.js

    中加载任务文件夹
    grunt.loadTasks('tasks');