我正在开发一个Gulpfile.它能在改变后立即重新启动吗?我正在用咖啡脚本开发它.Gulp能否监视Gulpfile.coffee,以便在保存更改时重新启动?

推荐答案

你可以创建一个task,将gulp.watch换成gulpfile.js,只需spawn another gulp child_process.

var gulp = require('gulp'),
    argv = require('yargs').argv, // for args parsing
    spawn = require('child_process').spawn;

gulp.task('log', function() {
  console.log('CSSs has been changed');
});

gulp.task('watching-task', function() {
  gulp.watch('*.css', ['log']);
});

gulp.task('auto-reload', function() {
  var p;

  gulp.watch('gulpfile.js', spawnChildren);
  spawnChildren();

  function spawnChildren(e) {
    // kill previous spawned process
    if(p) { p.kill(); }

    // `spawn` a child `gulp` process linked to the parent `stdio`
    p = spawn('gulp', [argv.task], {stdio: 'inherit'});
  }
});

我使用了yargs,以便在需要重新启动时接受"主任务"的运行.所以为了运行这个,你可以调用:

gulp auto-reload --task watching-task

要进行测试,请拨打touch gulpfile.jstouch a.css查看日志(log).

Node.js相关问答推荐

node 模块错误:类型参数OT具有循环约束''

容器端口是容器内 node 应用程序的端口吗?

从目录中获取所有文件,而不是NodeJS中的单个文件

如何在Firebase Cloud Function v2计划函数中设置代码中的时区?

根据我的测试,为什么在编写Varint代码方面,NodeJS要比Rust快这么多?

Node-Red Tasmota 错误:连接 ECONNREFUSED 192.168.77.21:1883

尽管 tsconfig 中提供了正确的路径,但仍出现找不到模块错误

使用更新版本仍然找到包@angular/fire但不支持原理图

express app.post的多个参数在Node.js中的定义是什么

无法截取页面截图

firebase/messaging 不提供名为 getToken 的导出

Axios 响应循环通过函数只返回第一个映射对象的结果

file.slim.js 中的苗条是什么

如果我使用像 express 这样的 node 服务器,是否需要 webpack-dev-server

如何在 MongoDB collection.find() 上获取回调

Webpack TypeScript module.hot 不存在

如何在 Joi 字符串验证中使用枚举值

`return function *(){...}` 是什么意思?

如何在 node.js 沙箱中安全地运行用户提交的脚本?

Firestore:多个条件 where 子句