2017-09-25 37 views
0

我试图让我的进程(webpack,nodemon-restart)与单个gulp命令一起工作。这工作得很好。但是,如果webpack的任务与gulp的默认任务(与nodemon一起)绑定,或者与nodemon的吞咽任务一起嵌入,那么它只会构建一次。当使用gulp手表绑定时,Nodemon崩溃并重新启动两次以上

然后我决定将webpack构建任务和nodemon重启任务都绑定到gulp的watch命令上,这个工作方式与我想要的一样,只是如果你进行了更改并保存了两次以上,app nodemon就会崩溃并打印此内容在控制台

"/home/nnanyielugo/Workspace/activity-calendar/node_modules/nodemon/lib/monitor/match.js:132 
    var rules = monitor.sort(function (a, b) { 
        ^
    TypeError: Cannot read property 'sort' of undefined" 

作为解决错误,我试图以配合的WebPack生成任务使用。对nodemon重启()方法,而是得到了重新起动重建的无限循环(nodemon重新启动第一, webpack构建,nodemon重新启动,webpack重建等等)。

有谁有解决的办法吗?`

这里是我的代码示例`

var gulp = require('gulp'), 
 
    nodemon = require('gulp-nodemon'), 
 
    webpack = require('webpack-stream'); 
 

 

 
gulp.task('default', ['watch']); 
 

 
gulp.task('webpack', function() { 
 
    return gulp.src('src/entry.js') 
 
    .pipe(webpack(require('./webpack.config.js'))) 
 
    .pipe(gulp.dest('./public')); 
 
}); 
 

 
gulp.task('nodemon', function() { 
 
    return nodemon({ 
 
     script: 'app.js' 
 
    , ext: 'js html' 
 
    , env: { 'NODE_ENV': 'development' } 
 
    })  
 
}) 
 

 
gulp.task('watch', function(){ 
 
    gulp.watch(['./api/**/*.js', './server/**/*.js', './*.js'], ['webpack', 'nodemon']); 
 
})`

回答

0

我猜,你nodemongulp's手表任务相互碰撞。要么你应该搭车使用nodemon并依靠gulp来启动你的应用程序。

要不,你可以摆脱gulp's手表的任务,并在您nodemonrestart方法这样添加相关的脚本,

nodemon({ 
    // script goes here. 
}).on('restart', your_reload_logic) 

希望这有助于!

+0

在nodemon的restart方法中添加webpack的转译器命令'webpack'会将nodemon发送到一个无止境的reatart循环中(nodemon在webpack传输之前重新启动,然后nodemon必须重新启动,并且webpack再次生成,并且nodemon再次重新启动, – Nnanyielugo

相关问题