javascript - 您如何在 Grunt.js 中查看多个文件,但仅在更改的文件上运行任务?

标签 javascript node.js gruntjs

在学习如何使用 grunt ,我正在尝试制作一个简单的 CoffeeScript 观察器/编译器。问题是,如果我告诉 watch 任务监视多个文件,其中一个文件发生变化,它会将所有文件传递给 coffee 命令。这意味着当您更改 1 个文件时,它将重新编译 所有src 模式匹配的文件。相反,我只想重新编译与 src 模式匹配的已更改的单个文件。

这里是 grunt.js:

module.exports = function(grunt) {
  grunt.initConfig({
    coffee: {
      app: {
        src: ['test/cases/controller/*.coffee'],
        dest: 'tmp',
        options: {
          bare: true,
          preserve_dirs: true
        }
      }
    },
    watch: {
      files: ['<config:coffee.app.src>'],
      tasks: ['coffee:app']
    }
  });

  grunt.loadNpmTasks('grunt-coffee');
  grunt.registerTask('default', 'coffee');
};

这是使用 grunt-coffee ,基本上是这样的:https://gist.github.com/2373159 .

当我运行 grunt watch 并在 test/cases/controller/*.coffee 中保存一个文件时,它会编译 all匹配的文件(将它们放在 tmp/* 中)。

您如何只使用 grunt 编译 更改的文件

最佳答案

即将推出(目前正在开发中)的 v0.4.0a grunt 具有 grunt.file.watchFiles对象,这是专门为此目的而设计的。 grunt-coffee 插件可能已经添加了对此功能的支持,我不确定。

无论哪种方式,如果您有兴趣在您的项目中尝试开发中的 grunt 版本,请查看 When will I be able to use in-development feature 'X'?常见问题解答条目。

关于javascript - 您如何在 Grunt.js 中查看多个文件,但仅在更改的文件上运行任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12063266/

相关文章:

javascript - 为什么有时异步代码中的错误会使 node.js 服务器崩溃

javascript - NestJs 验证管道无法正常工作

node.js - 用于 Mocha 测试的 Grunt : How to correctly setup . html 文件?

javascript - 通过 forEach 循环 grunt 任务以复制具有数组长度的任务

javascript - Grunt Lodash 模板可以在 Gruntfile.js 任务中使用吗?

javascript - jQuery ajax 引用网址

javascript - JavaScript/NodeJS是否会自动引发错误?

javascript - 如何动态生成div并使其可拖动

javascript - node js busboy 不使用 angular js $http post 发出事件

javascript - 如何获取两个日期时间之间的日期数组