我有一个 gulp.js 文件,其中包括:
gulp.task('default', ['watch']);
哪个启动了监视任务
gulp.task('watch', function(){
gulp.watch(productionScripts, ['autoConcat']);
});
然后在 productionScripts 中对文件的任何保存更改,监视任务将连接文件。
我想做的是在我的 package.json 中,我想在我输入 npm start 时启动这个 watch (这已经启动了我的 Node 服务器)。
package.json
"start": "node server.js",
更新--------
Ben(b3nj4m.com),我试过你所说的。 watch 和服务器启动。但是,一切都运行了两次(可能是由于编辑器,不相关),但是当我使用 gulp 启动它时,我确实丢失了我的服务器日志。
[15:31:18] Starting 'autoConcat'...
[15:31:18] Finished 'autoConcat' after 147 ms
[15:31:19] Starting 'autoConcat'...
[15:31:19] Finished 'autoConcat' after 138 ms
[15:31:20] Starting 'autoConcat'...
[15:31:20] Finished 'autoConcat' after 127 ms
[15:31:23] Starting 'autoConcat'...
这就像在服务器因更改而重新启动和级联文件更改之间存在一个循环。
最佳答案
你可以从你的 gulpfile 运行你的服务器:
var child = require('child_process');
var fs = require('fs');
gulp.task('default', ['server', 'watch']);
gulp.task('server', function() {
var server = child.spawn('node', ['server.js']);
var log = fs.createWriteStream('server.log', {flags: 'a'});
server.stdout.pipe(log);
server.stderr.pipe(log);
});
gulp.task('watch', function(){
gulp.watch(productionScripts, ['autoConcat']);
});
然后将您的 npm start
定义更改为:
"scripts": {
"start": "gulp"
}
关于javascript - 当我输入 npm start 时如何启动 Gulp watch 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28029929/