2015-10-15 129 views
0

我試圖運行此之後一飲而盡,我在jekkyl模板中找到。 我在Windows 8.1上的節點4上運行,我不理解爲什麼每次我得到的:咕嘟咕嘟不工作

events.js:141 
     throw er; //Unhandled 'error' event 
    ^

給我的感覺就是與Windows的東西,因爲當我跑在Linux上我沒有問題。

這是一飲而盡:

gulp.task('jekyll-build', function (done) { 
    browserSync.notify(messages.jekyllBuild); 
    return cp.spawn('jekyll', ['build'], {stdio: 'inherit'}) 
     .on('close', done); 
}); 

gulp.task('jekyll-rebuild', ['jekyll-build'], function() { 
    browserSync.reload(); 
}); 

gulp.task('browser-sync', ['jekyll-build'], function() { 
    browserSync({ 
     server: { 
      baseDir: '_site' 
     } 
    }); 
}); 

gulp.task('stylus', function(){ 
     gulp.src('src/styl/main.styl') 
     .pipe(plumber()) 
     .pipe(stylus({ 
      use:[koutoSwiss(), prefixer(), jeet(),rupture()], 
      compress: true 
     })) 
     .pipe(gulp.dest('_site/assets/css/')) 
     .pipe(browserSync.reload({stream:true})) 
     .pipe(gulp.dest('assets/css')) 
}); 

gulp.task('js', function(){ 
    return gulp.src('src/js/**/*.js') 
     .pipe(plumber()) 
     .pipe(concat('main.js')) 
     .pipe(uglify()) 
     .pipe(gulp.dest('assets/js/')) 
}); 

gulp.task('imagemin', function() { 
    return gulp.src('src/img/**/*.{jpg,png,gif}') 
     .pipe(plumber()) 
     .pipe(imagemin({ optimizationLevel: 3, progressive: true, interlaced: true })) 
     .pipe(gulp.dest('assets/img/')); 
}); 

gulp.task('watch', function() { 
    gulp.watch('src/styl/**/*.styl', ['stylus']); 
    gulp.watch('src/js/**/*.js', ['js']); 
    gulp.watch('src/img/**/*.{jpg,png,gif}', ['imagemin']); 
    gulp.watch(['*.html', '_includes/*.html', '_layouts/*.html', '_posts/*'], ['jekyll-rebuild']); 
}); 

gulp.task('default', ['js', 'stylus', 'browser-sync', 'watch']); 

有誰知道爲什麼和能幫助我理解?

+0

您應該添加一些關於您所看到的錯誤的更多詳細信息,如果您可以粘貼整個錯誤消息,可能會有更多信息。 –

回答

0

我很高興你試圖幫助。幸運的是,我發現問題是Windows運行腳本的方式。我剛剛添加了如下所示的「.bat」:

gulp.task('jekyll-build', function (done) { 
    browserSync.notify(messages.jekyllBuild); 
    return cp.spawn('jekyll.bat', ['build'], {stdio: 'inherit'}) 
     .on('close', done); 
}); 
0

基本上主要的問題是在下面的行:

gulp.task('default', ['js', 'stylus', 'browser-sync', 'watch']); 

數組中的任務同時發生。如果腳本和樣式通常可以同時處理,那麼browserSync幾乎不能提供可能尚未創建的文件夾。您必須重新構建過程以在此添加一些同步。

我看也是另一個問題:

// stylus task 
.pipe(gulp.dest('_site/assets/css/')) 
.pipe(browserSync.reload({stream:true})) 
.pipe(gulp.dest('assets/css')) 

.pipe(gulp.dest('assets/js/')) 

.pipe(gulp.dest('assets/img/')); 

您服務_site文件夾,但有時你複製到_site/assets/,有時assets/ 。此外,您應該刪除stylus任務中的最後一個gulp.dest