2017-09-25 36 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

相關問題