首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用grunt-contrib-watch运行动态命名的grunt任务

使用grunt-contrib-watch运行动态命名的grunt任务
EN

Stack Overflow用户
提问于 2014-04-25 00:13:11
回答 1查看 165关注 0票数 0

有没有一种方法可以根据更改的文件动态指定要运行的任务?

换句话说:

代码语言:javascript
复制
watch: {
  exec: {
    files: [html/*.html],
    tasks: ['exec:my_exec_task:THE_FILE_THAT_CHANGED']
  }
}

我可以捕获手表事件,但我不能从回调中运行任务,因为它“做错了”。

代码语言:javascript
复制
grunt.event.on('watch', function(action, filepath, target) {
  if (target === 'exec') {
    grunt.task.run('exec:my_exec_task:' + filepath); /* this doesn't work */
    grunt.config('filepath', filepath); /* and neither does this, it's undefined in my exec task */
  }
});

至少文档是这么说的:https://github.com/gruntjs/grunt-contrib-watch#using-the-watch-event

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2015-03-25 21:23:28

根据文档

监视事件并不是用来替代标准的Grunt API来配置和运行任务的。如果您试图从watch事件中运行任务,那么您很可能做错了。请阅读配置任务。

您不能从事件运行任务,但可以在任务开始前更改配置。添加到监视配置选项部分spawn: false

代码语言:javascript
复制
grunt.initConfig({
  watch: {
    scripts: {
      files: ['app/*.js'],
      tasks: ['jshint:one'],
      options: {
        spawn: false,
      },
    },
  },
  jshint: {
    one: {src: ""},
  },
});

并在监视事件时“即时”更改配置

代码语言:javascript
复制
grunt.event.on('watch', function(action, filepath) {
  grunt.config('jshint.one.src', filepath);
});

在应用配置之后,watch部分将运行任务jahint:one

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

https://stackoverflow.com/questions/23274324

复制
相关文章

相似问题

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