缺少它:最近开始使用Gulp(从Grunt转换),并尝试使用Gulp的默认监视任务(不是npm的gulp-watch)用于SASS/JS/HTML和gulp-nodemon(从npm)重启Express服务器发生变化.当跑步时gulp watch,它工作正常; 当运行gulp server(对于nodemon)工作正常.但是,将两者结合使用(如下面的默认任务配置所示),手表内容无法正常工作.任务正在运行,并且在CLI上gulp显示监视任务的"正在启动"和"已完成",但文件不会更新.
相关任务配置:
Concat javascript:
gulp.task('js:app', function(){
return gulp.src([
pathSource('js/application/modules/**/*.js'),
pathSource('js/application/_main.js')
])
.pipe(concat('application.js'))
.pipe(gulp.dest('./build/assets/js')).on('error', utils.log);
});
Run Code Online (Sandbox Code Playgroud)
Nodemon,重启更改以表达app:
gulp.task('express', function(){
return nodemon({script:'server.js', ext:'js', cwd: __dirname + '/express', legacyWatch: true})
.on('restart', function(){
//gulp.run('watch'); // doesn't work :(
});
});
Run Code Online (Sandbox Code Playgroud)
观看javascript更改,并运行js:app进行concat'ing.
gulp.task('watch', function(){
gulp.watch(pathSource('js/application/**/*.js'), ['js:app']);
});
Run Code Online (Sandbox Code Playgroud)
默认任务,同时初始化gulp watch和nodemon:
gulp.task('default', ['watch', 'express']);
Run Code Online (Sandbox Code Playgroud)
如果有人有任何想法,请提前感谢!
Gas*_*ton 16
gulp.run电话已被弃用,所以我尝试了不同的方法.既然你已经在使用gulp,我可以建议尝试一下gulp-nodemon吗?
根据gulp-nodemon 文档,您可以传递一组要执行的任务:
更新:这是完整的gulpfile.js文件,以及github上的工作示例.
'use strict';
// Main dependencies and plugins
var gulp = require('gulp');
var jshint = require('gulp-jshint');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
var rename = require('gulp-rename');
var nodemon = require('gulp-nodemon');
var assets = 'assets/js/**/*.js';
var publicDir = 'public/javascripts';
// Lint Task
gulp.task('lint', function () {
return gulp.src(assets)
.pipe(jshint())
.pipe(jshint.reporter('jshint-stylish'));
});
// Concatenate and minify all JS files
gulp.task('scripts', function () {
return gulp.src(assets)
.pipe(concat('global.js'))
.pipe(gulp.dest(publicDir))
.pipe(rename('global.min.js'))
.pipe(uglify())
.pipe(gulp.dest(publicDir));
});
// Watch Files For Changes
gulp.task('watch', function () {
gulp.watch(assets, ['lint', 'scripts']);
});
gulp.task('demon', function () {
nodemon({
script: 'server.js',
ext: 'js',
env: {
'NODE_ENV': 'development'
}
})
.on('start', ['watch'])
.on('change', ['watch'])
.on('restart', function () {
console.log('restarted!');
});
});
// Default Task
gulp.task('default', ['demon']);
Run Code Online (Sandbox Code Playgroud)
这样,您就可以watch在nodemon启动时生成任务,并确保watch每当nodemon重新启动应用程序时都会再次触发该任务.
编辑:似乎你应该change 从gulp-nodemon调用on -event,它将在事件触发之前处理编译任务restart.
编辑:似乎on('change', callback)从他们的API中删除了nodemon
| 归档时间: |
|
| 查看次数: |
13917 次 |
| 最近记录: |