1
應該很簡單,但找不到問題。gulp-nodemon + browser-sync:在服務器端代碼發生更改後,應用程序不會重新加載
模板對公共文件所做的更改全部通過瀏覽器同步進行更新。但是,對app.js
,./bin/www
和./route/**/*.js
的更改會導致瀏覽器同步刷新,但顯然不會觸發nodemon重新啓動應用程序:我需要停止並手動重新啓動它。
我運行使用DEBUG=appName:* node ./bin/www & gulp
這裏我的應用程序是我Gulpfile.js
//////////////////////////////////////
// Simple task to update our views //
//////////////////////////////////////
var gulp = require('gulp');
var nodemon = require('gulp-nodemon');
var browserSync = require('browser-sync');
// the real stuff
gulp.task('default', ['browser-sync'], function() {
\t gulp.watch('./views/**/*.jade', browserSync.reload);
\t gulp.watch(['./routes/**/*.js', './bin/www', './app.js'], ['bs-reload-delay']);
});
// our browser-sync config + nodemon chain
gulp.task('browser-sync', ['nodemon'], function() {
\t browserSync.init(null, {
\t \t proxy: "http://localhost:3000",
files: ["public/**/*.*"],
browser: "chromium-browser",
port: 4000,
\t });
});
// our delayed reload for our server side js
gulp.task('bs-reload-delay', function() {
setTimeout(function() {
browserSync.reload({ stream: false });
}, 800);
});
// our gulp-nodemon task
gulp.task('nodemon', function (cb) {
\t var started = false;
\t return nodemon({
\t \t script: './app.js',
\t \t ext: 'js',
\t \t task: ['bs-reload-delay']
\t }).on('start', function() {
\t \t // to avoid nodemon being started multiple times
\t \t if (!started) {
\t \t \t cb();
\t \t \t started = true;
\t \t }
\t }).on('crash', function() {
\t \t console.log('nodemon.crash');
\t }).on('restart', function() {
\t \t console.log('nodemon.restart');
\t });
});
這裏是我的目錄
.
├── app.js
├── bin
│ └── www
├── config.js
├── Gulpfile.js
├── npm-debug.log
├── package.json
├── public
│ ├── css
│ │ └── style.css
│ ├── favicon.ico
│ ├── img
│ └── js
│ └── front-client.js
├── readme.md
├── routes
│ ├── client.js
│ ├── fire.js
│ └── game.js
└── views
├── client.jade
├── error.jade
└── _layout.jade