我正在使用gulp-express从 gulpfile.js 运行 Express 服务器。我在 ./src/server/index.js
在服务器设置中,我指定 app.use(require('connect-livereload')());
以在浏览器中启用 livereload
在 gulpfile 中,我指定在任何时候对 ./src/client/libs/**/*.js
进行修改时,任务 client:libs
应该运行并最终应通知 livereload .pipe(server.notify)
通过这些设置,我希望在 ./src/client/libs/**/*.js
中进行更改时自动刷新我的浏览器。但由于某种原因,它不起作用。谁能看到我的错误吗?我的文件的相关部分可以在下面找到。
提前致谢
./gulpfile.js:
var browserify = require('browserify');
var buffer = require('vinyl-buffer')
var gulp = require('gulp');
var server = require('gulp-express');
var source = require('vinyl-source-stream');
var sourcemaps = require('gulp-sourcemaps');
var uglify = require('gulp-uglify');
var packageJson = require('./package.json');
var dependencies = Object.keys(packageJson && packageJson.dependencies || {});
gulp.task('client:libs', function () {
var b = browserify();
return b
.external(dependencies)
.require('./src/client/libs/app.js')
.bundle()
.pipe(source('libs.js'))
.pipe(buffer())
.pipe(sourcemaps.init())
.pipe(uglify())
.on('error', gutil.log)
.pipe(sourcemaps.write('./'))
.pipe(gulp.dest('./build/js'))
.pipe(server.notify())
});
gulp.task('client:index', function ()
return gulp.src('./src/client/index.html')
.pipe(gulp.dest('./build'));
});
gulp.task('server', function () {
server.run(['./src/server/index.js']);
gulp.watch(['./src/client/index.html'], ['client:index']);
gulp.watch(['./src/client/libs/**/*.js'], ['client:libs']);
});
./src/server/index.js
var express = require('express');
//var app = express();
var app = module.exports.app = exports.app = express();
app.use('/', express.static('build'));
app.use(require('connect-livereload')());
var server = app.listen(3000, '127.0.0.1', function () {
var host = server.address().address;
var port = server.address().port;
console.log('App is listening at http://%s:%s', host, port);
});
最佳答案
尝试改变这一点:
server.run(['./src/server/index.js'], {}, 35729);
关于javascript - gulp-express 通知 livereload,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33481510/