【问题标题】:Task renaming with load-grunt-config使用 load-grunt-config 重命名任务
【发布时间】:2016-04-11 02:51:21
【问题描述】:

我有来自 grunt-contrib-watch 的带有“watch”任务的 grunt 项目,我想将它重命名为“delta”,并在我自己的“watch”任务的上下文中调用它另一个我的任务。我也在使用 load-grunt-config。我的配置:

package.json

{
  "author": "Boris",
  "name": "my-project",
  "version": "0.0.0",
  "dependencies": {},
  "repository": {},
  "devDependencies": {
    "grunt-contrib-copy": "^0.8.2",
    "grunt-contrib-watch": "^0.6.1",
    "load-grunt-config": "^0.19.1"
  }
}

Gruntfile.js

module.exports = function(grunt) {
  require('load-grunt-config')(grunt);

  grunt.renameTask('watch', 'delta');
}

grunt/aliases.js

module.exports = {
  watch: [
      'copy',
      'delta'
  ]
};

grunt/watch.js

module.exports = {
  options: {
      livereload: true
  },
  js: {
    files: [
        '<%= app_files.js %>'
    ],
    tasks: ['copy']
  }
}

但我有错误:

Warning: Task "watch" not found. Use --force to continue.

好像是因为

grunt.renameTask('watch', 'delta');

在配置加载之后,但另一方面我不能在之前插入这段代码,因为在配置加载之前没有声明的“监视”任务。

任何想法如何正确实现它?

【问题讨论】:

    标签: gruntjs


    【解决方案1】:

    我从来没有使用过 renameTask,所以我不能说,但我们通过 registerTask 来做到这一点。在你的情况下,你会想要使用这条线

    grunt.registerTask('delta', ['watch']);
    

    registerTask 的另一个好处是您可以分配一个任务来执行多项操作(即测试可能构建、jshint 和 scsslint)。

    【讨论】:

    • 感谢您的回复,但在这种情况下,如果我将在名为“watch”的任务之后注册并且它会触发“delta”(也许还有其他东西),那么我将进入无限循环.
    • 当你没有 renameTask 行时,你可以运行 watch 吗?我看到你会从 aliases.js 文件中获得 registerTask 的无限循环
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-15
    • 2014-08-15
    相关资源
    最近更新 更多