SoE*_*zPz 12 node.js gulp package.json
我有一个gulp.js文件,其中包括:
gulp.task('default', ['watch']);
Run Code Online (Sandbox Code Playgroud)
这启动了监视任务
gulp.task('watch', function(){
gulp.watch(productionScripts, ['autoConcat']);
});
Run Code Online (Sandbox Code Playgroud)
然后,对于bioScripts中文件的任何已保存更改,监视任务将连接文件.
我想做的是,在我的package.json中,当我输入npm start时,我希望将这个监视器调高(这已经启动了我的节点服务器).
的package.json
"start": "node server.js",
Run Code Online (Sandbox Code Playgroud)
更新 --------
本(b3nj4m.com),我试过你所说的.手表和服务器启动.但是,一切都运行两次(可能是由于编辑器,而不是相关的),但是当我用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'...
Run Code Online (Sandbox Code Playgroud)
这就像服务器在更改时重新启动和连接文件更改之间存在循环.
Ben*_*Ben 20
您可以从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']);
});
Run Code Online (Sandbox Code Playgroud)
然后将您的npm start定义更改为:
"scripts": {
"start": "gulp"
}
Run Code Online (Sandbox Code Playgroud)
nas*_*eez 10
您可以使用包来连接您的startin package.json中的多个任务concurrently:
{
"start": "concurrent \"node server.js\" \"gulp\" "
}
Run Code Online (Sandbox Code Playgroud)
npm start从您的终端运行.这将执行其中的所有语句start.
供参考:https://www.npmjs.com/package/concurrently
我的一个项目中有类似的东西.请注意,它将对两个进程进行后台处理 - 您可以使用它ps来获取ID并将其停止kill <pid>.
"scripts": {
"start": "{ gulp watch & node server.js & }"
}
Run Code Online (Sandbox Code Playgroud)
要禁用日志记录:
"scripts": {
"start": "{ gulp watch --silent & node server.js & }"
}
Run Code Online (Sandbox Code Playgroud)
要考虑的一个最佳实践是使用nodemon和gulp -nodemon然后喜欢接受的答案,从npm触发gulp脚本npm start.它非常快速,您可以在文件更改时重新启动节点服务器.例如:
gulpfile.js
var gulp = require('gulp');
var nodemon = require('gulp-nodemon');
...
var nodemonOptions = {
script: 'bin/www.js',
ext: 'js',
env: { 'NODE_ENV': 'development' },
verbose: false,
ignore: [],
watch: ['bin/*', 'routes/*', 'app.js']
};
gulp.task('start', function () {
nodemon(nodemonOptions)
.on('restart', function () {
console.log('restarted!')
});
});
Run Code Online (Sandbox Code Playgroud)
的package.json
{
...
"scripts": {
"start": "gulp start"
},
"devDependencies": {
"gulp": "^3.9.0",
"gulp-nodemon": "^2.0.4"
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17431 次 |
| 最近记录: |