我正在开发一个Gulpfile
。可以让它在更改后立即重启吗?我正在用CoffeeScript开发它。Gulp
是否可以监视Gulpfile.coffee
,以便在保存更改时重新启动?
发布于 2014-04-06 23:56:44
您可以创建一个task
,它将为gulpfile.js
和简单的spawn
another gulp child_process创建gulp.watch
。
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.js
或touch a.css
来查看日志。
发布于 2015-01-28 12:13:02
发布于 2015-03-11 22:46:16
为此,我使用了一个小的shell脚本。这也适用于Windows。
按Ctrl+C
键停止脚本。
// gulpfile.js
gulp.task('watch', function() {
gulp.watch('gulpfile.js', process.exit);
});
Bash shell脚本:
# watch.sh
while true; do
gulp watch;
done;
Windows版本:watch.bat
@echo off
:label
cmd /c gulp watch
goto label
https://stackoverflow.com/questions/22886682
复制相似问题