dev 和 prod 之间的 Grunt 切换任务

Grunt switch task between dev and prod

我有一个 grunt 文件,我想看看我是否可以拆分,这样我就可以调用 grunt build:devgrunt build:prod 之类的东西。

现在任务看起来像这样 -

grunt.registerTask('build', "Building all needed files.", [
    'clean:build',
    'check-code',
    'clean:dist',
    'dist:prepare',
    'copy',
    'cssmin',
    'injector',
    'webpack:prod',
    'create-status-page'
]);

而且我想知道是否有一种方法可以像使用密钥 devprod 的配置那样拆分此任务,其中 prod 的任务列表与 dev 略有不同.有点类似于你如何使用像

这样的配置来做到这一点
 return {
    dev: {
     ...
    },
    prod: {
     ...
    }  
 }

这样的事情可能吗?明确地说,我想问我是否可以在一个任务中注册这两个。

您也许可以使用 multitask

grunt.initConfig({
  build: {
    dev:  ['task1', 'task2', 'task3'],
    prod: ['taskA', 'taskB', 'taskC']
  }
});

grunt.registerMultiTask('build', 'Building...', function() {
  grunt.task.run(this.data);
});

然后你可以grunt build:devgrunt build:prod

注意:如果您只执行 grunt build,它将遍历所有属性,因此它会 运行 开发任务和生产任务。