Gulp-nodemon 和监视任务
Posted
技术标签:
【中文标题】Gulp-nodemon 和监视任务【英文标题】:Gulp-nodemon and watch task 【发布时间】:2016-07-22 05:17:12 【问题描述】:我正在尝试使用 gulp 和 nodemon 创建构建流程。目的是观察 sass 文件并将其编译为 css,并在服务器文件更改时重新启动节点应用程序。
我的 gulpfile.js:
gulp.task('sass', function()
return gulp.src(sassFilesTobeProcessed).
pipe(sass()).
pipe(concat('ready_stylesheet.css')).
pipe(gulp.dest('express/public/stylesheets'))
)
gulp.task('watch', function()
return gulp.watch(allSassFiles, ['sass']);
)
gulp.task('serve', function()
return nodemon(
script: 'express/app.js',
).on('start', ['watch'])
.on('change', ['watch'])
.on('restart', function()
console.log('restarted');
)
)
监视任务工作正常,文件在更改后编译。但是我的 app.js 服务器文件中的更改不会触发服务器重启。当我评论 .on
语句时,它开始正常工作(服务器重新加载),但是当然不再观察到 sass 文件。因此,我假设这两者之间存在一些我无法发现的冲突。感谢任何帮助!我的操作系统 - Windows 7、node 4.2.6、nodemon 1.9.1
【问题讨论】:
【参考方案1】:使用任务依赖而不是 .on(event)
来启动您的 watch
任务:
gulp.task('serve', ['watch'], function()
return nodemon(
script: 'express/app.js',
)
.on('restart', function()
console.log('restarted');
)
)
【讨论】:
【参考方案2】:使用 nodemon 发出重启事件
const cfg = require('../config')
const gulp = require('gulp')
const nodemon = require('nodemon')
const gnodemon = require('gulp-nodemon')
gulp.task('nodemon', ['ts', 'json'], () =>
gnodemon(
script: cfg.paths.main,
tasks: ['ts', 'json'],
ext: 'js',
watch: [cfg.paths.src],
// para no alterar el entorno de prodicion con test
env: 'NODE_ENV': process.env.NODE_ENV !== 'production'
? process.env.NODE_ENV || 'development' : 'development'
)
.on('start', ['mocha'])
)
gulp.task('default', ['nodemon'], () =>
gulp.watch(cfg.paths.src, (event) => nodemon.emit('restart'))
)
【讨论】:
以上是关于Gulp-nodemon 和监视任务的主要内容,如果未能解决你的问题,请参考以下文章
gulp-nodemon + browser-sync:服务器端代码更改后应用程序不会重新加载
找不到模块“gulp-nodemon”。在 Windows 7 上,32 位。使用电源外壳
更改 *.js 文件后,页面重新加载非常缓慢(~30sec-2min)[express+gulp+gulp-nodemon+browser-sync]