Ошибка при запуске Gulp: TypeError: dest.on не является функцией - PullRequest
0 голосов
/ 21 сентября 2018

Я начал создавать свою собственную рабочую среду для своего личного сайта, используя gulp.js, пока не наткнулся на ошибку, которую, похоже, не могу решить.

Вот мой мой код: (Обратите внимание, что я почти уверен, что ошибка в моей задаче 'sassCompile')

/**
 * Initialize all gulp plugins
 */
var gulp = require('gulp');
var sass = require('gulp-sass');
var pug = require('gulp-pug');
var browserSync = require('browser-sync').create();
var autoPrefixer = require('autoprefixer');
var plumber = require('gulp-plumber');
var sourceMaps = require('gulp-sourcemaps');

/**
 * Launch browsersync
 */

gulp.task('sync', ['sassCompile', 'pugCompile'], function(){
    browserSync.init({
        server: {
            baseDir: './'
        }
    });
});

/**
 * Compile sass and css files into css so the browser can read them.
 */

 gulp.task('sassCompile', function() {
     gulp.src('src/sass/*.scss')
     .pipe(plumber())
     .pipe(sourceMaps.init())
     .pipe(sass({
         errorLogToConsole: true,
         outputStyle: 'compressed'
     }))
     .on('error', console.error.bind(console))
     .pipe(autoPrefixer('last 2 versions', {cascade: true}))
     .pipe(gulp.dest('./css'))
     .pipe(browserSync.reload({stream: true}));
 });

 /**
  * Compile pug files into html so the browser can read them.
  */

  gulp.task('pugCompile', function() {
      gulp.src('src/pugfiles/*.pug')
      .pipe(plumber())
      .pipe(pug())
      .pipe(gulp.dest('./HTML'))
  });

Это приведет к этой ошибке:

TypeError: dest.on is not a function
    at DestroyableTransform.Readable.pipe (C:\Users\lucas\Desktop\Portfolio\node_modules\through2\node_modules\readable-stream\lib\_stream_readable.js:564:8)
    at DestroyableTransform.pipe2 (C:\Users\lucas\Desktop\Portfolio\node_modules\gulp-plumber\index.js:72:14)
    at Gulp.<anonymous> (C:\Users\lucas\Desktop\Portfolio\gulpfile.js:37:7)
    at module.exports (C:\Users\lucas\Desktop\Portfolio\node_modules\orchestrator\lib\runTask.js:34:7)
    at Gulp.Orchestrator._runTask (C:\Users\lucas\Desktop\Portfolio\node_modules\orchestrator\index.js:273:3)
    at Gulp.Orchestrator._runStep (C:\Users\lucas\Desktop\Portfolio\node_modules\orchestrator\index.js:214:10)
    at Gulp.Orchestrator.start (C:\Users\lucas\Desktop\Portfolio\node_modules\orchestrator\index.js:134:8)
    at C:\Users\lucas\AppData\Roaming\npm\node_modules\gulp\bin\gulp.js:129:20
    at _combinedTickCallback (internal/process/next_tick.js:132:7)
    at process._tickCallback (internal/process/next_tick.js:181:9)

Мой каталог: Каталог

Если потребуется какая-либо другая информация, я обязательно ее предоставлю.

1 Ответ

0 голосов
/ 25 сентября 2018

Я думаю, это потому, что autoprefixer не возвращает поток.

Попробуйте вместо него использовать gulp-autoprefixer :

var autoprefixer = require('gulp-autoprefixer');

...и передайте ему объект для параметров:

// ...
.pipe(autoprefixer({
  browsers: ['last 2 versions'],
  cascade: true
}))

https://www.npmjs.com/package/gulp-autoprefixer

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...