在gruntfile中的任务中添加任务

时间:2013-05-14 11:06:28

标签: gruntjs

我有gruntfile如下:

       concat: {
        options: {
            banner: '<%= banner %>',
            stripBanners: true
        },
        one: {
            src: ['src/**/*.js'],
            dest: 'dist/<%= pkg.name %>_ac.js'
        },

        two: {
            src: ['/types/**/*.js'],
            dest: 'dist/<%= pkg.name %>_lib.js'
        },

        all: {
        }
    },.....  and so on

现在如果我注册任务如下:        grunt.registerTask('basic',['concat:all']);

我希望一个和两个都跑。我该如何在

中添加此选项
     all: {
          // what i need to add here to include one and two both?
     }

3 个答案:

答案 0 :(得分:5)

如果您要将任务注册为指向两个目标,则无需添加其他目标。只是做:

grunt.registerTask('basic', ['concat:one', 'concat:two']);

否则,如果您打算将一个和两个文件连接在一起,请执行以下操作:

grunt.initConfig({
  concat: {
    one: {
      src: ['src/**/*.js'],
      dest: 'dist/<%= pkg.name %>_ac.js'
    },
    two: {
      src: ['/types/**/*.js'],
      dest: 'dist/<%= pkg.name %>_lib.js'
    },
    all: {
      src: ['<%= concat.one.src %>', '<%= concat.two.src %>'],
      dest: 'dist/<%= pkg.name %>_all.js'
    }
  }
});

答案 1 :(得分:2)

Grunt允许您定义主要目标。所以在你的默认目标中定义为

grunt.registerTask( 'basic',['concat']);

这将激活concat:one和concat:two。

如果需要激活特定目标,请按如下方式定义注册任务。

    grunt.registerTask( 'basic',['concat:one']);

如果您需要运行具有多个目标的特定任务,则可以定义如下。

all: {
     tasks: ['one','two']
    }

然后在你的registerTask中调用所有目标。

 grunt.registerTask( 'basic',['concat:all']);

希望这可能有所帮助。

答案 2 :(得分:1)

你可以使用'gruntfile'插件,为你提供更强大的功能,你可以使用concat将一个grunt文件的任务添加到另一个。

请参阅链接:https://github.com/shama/gruntfile