1

我正在定义一个具有多个任务和目标的 Grunt 项目,使用 task build,我想运行一些复制目标,然后使用 task deployment,我也想运行copy一些其他目标(仅将文件夹复制到特定目录以进行部署例如),我不想在build任务中执行这个目标。

那么我怎样才能跳过这个 Grunt 目标build

这是我的例子

grunt.registerTask('build', ['clean', 'copy']);
grunt.registerTask('deployment', ['copy:deployment']);

grunt.initConfig(
  {
    copy: {
      foo: // Do something here,
      bar: // Do anothering here,
      ....
      deployment: // Copy file and execute something for deployment target.
    },
  }
);
4

2 回答 2

1
grunt.registerTask('build', ['clean', 'copy:foo', 'copy:bar']);
grunt.registerTask('deployment', ['copy:deployment']);
于 2015-06-29T04:30:53.873 回答
0

我建议您为构建任务指定复制目标,例如为通用目标复制:构建或复制:foo,复制:bar ..我认为不可能在 grunt 中选择一个不想要的目标(除非您通过函数调用创建通用任务)

编辑:

//something like this
grunt.registerTask('copy:build', function(){
  var copyConfig = grunt.config.get('copy');
  Object.keys(copyConfig).forEach(function(target){
    if(target !== 'deployment'){
      grunt.task.run('copy:'+target)
    }

  });
})

grunt.registerTask('build', ['clean', 'copy:build']);
//etc
于 2015-06-29T04:34:35.557 回答