首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何注册多个咕噜-执行任务?

如何注册多个咕噜-执行任务?
EN

Stack Overflow用户
提问于 2014-07-22 20:18:51
回答 2查看 2K关注 0票数 3

我想在我的Gruntfile.js中定义一个shell命令树,使用grunt-exec编写shell命令。

我可以用一个命令来完成这个任务,但是我无法理解编写多个命令集的语法,并且能够一个接一个地或分组地调用它们。

请有人提供一个完整的示例Gruntfile.js,具有以下任务结构?

代码语言:javascript
复制
test: `npm test`
lint:
  jshint: `jshint .`
  csslint: `csslint .`

我来自make世界,所以我真的想把这个工作流推入我的Node.js项目,该死的Node社区会议。

我希望grunt默认为npm test

我希望grunt lint同时执行jshint .csslint .

我希望grunt jshint只执行jshint .

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-30 14:10:56

多任务支持多个目标,但它们不能嵌套。但您可以注册运行其他任务的任务。

Gruntfile.js:

代码语言:javascript
复制
module.exports = function(grunt) {
  grunt.initConfig({
        exec: {
            test: "npm test",
            jshint: "jshint .",
            csslint: "csslint ."
        }
  });

  grunt.loadNpmTasks("grunt-exec");

  grunt.registerTask("default", ["exec:test"]);
  grunt.registerTask("test", ["exec:test"]);
  grunt.registerTask("lint", ["exec:jshint", "exec:csslint"]);
};

注意,已经有很多繁重的任务可用,比如格伦特-托勒-吉辛特,这使得事情变得简单多了。

票数 6
EN

Stack Overflow用户

发布于 2014-07-30 14:07:04

Grunt允许您根据任务名称和任务的任务注册任务。通过字符串字面任务名称数组很容易完成,例如:

代码语言:javascript
复制
grunt.registerTask('default', ['test']);
grunt.registerTask('lint', ['jshint', 'csslint']);

如果您已经将jshint定义为jshint,那么grunt.initConfig应该已经注册了。请记住,对于节点程序来说,不寻常的是,一切都是高度同步的。这些任务将按照您给出的顺序运行。

编辑:如果你以后需要它,你也可以registerTask一个函数而不是一个任务名称数组。这就是如何编写一个执行异步工作的任务,或者如果您有非常严格的排序要求,可以使用控制流逻辑。如果可以的话,试着坚持只根据任务名称注册。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24897047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档