2015-10-15 2 views
0

Я пытаюсь запустить этот следующий глоток, который я нашел на шаблоне jekkyl. Я бегу на узле 4 в ОС Windows 8.1 и я не понимая, почему каждый раз, когда я получаю:Gulp не работает

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

У меня сложилось впечатление, что это что-то связано с окнами, потому что, когда я работал на 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

Я рад, что вы попытались помочь. Fortunatelly Я обнаружил, что проблема заключается в том, как 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']); 

Задача в массиве происходят одновременно. Если скрипты и стили обычно обрабатываются одновременно, браузерSync вряд ли может обслуживать папку, которая, возможно, еще не создана. Вы должны переделать процесс сборки, чтобы добавить некоторую синхронизацию здесь.

Я вижу, еще одна проблема в:

// 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/ , Кроме того, вы должны удалить последние gulp.dest в задаче stylus.