@Maxi10
верстальщик

Ошибка TypeError: dest.on is not a function?

Я делаю сборку GULP по видео уроку с youtube
выдает вот такую ошибку

gulpfile.js
const {src, dest, watch, parallel, series} = require('gulp');

const scss = require('gulp-sass')(require('sass'));
const concat = require('gulp-concat');
const uglify = require('gulp-uglify-es').default;
const browserSync = require('browser-sync').create();
const autoprefixer = require('autoprefixer');
const clean = require('gulp-clean');

function scripts () {
  return src([
    'node_modules/swiper/swiper-bundle.js',
    'src/js/main.js',
  ])
    .pipe(concat('main.min.js'))
    .pipe(uglify())
    .pipe(dest('src/js'))
    .pipe(browserSync.stream())
}

function styles() {
  return src('src/scss/style.scss')
    .pipe(autoprefixer({overrideBrowserslist: ['last 10 version']}))
    .pipe(concat('style.min.css'))
    .pipe(scss({outputStyle: 'compressed'}))
    .pipe(dest('src/css'))
    .pipe(browserSync.stream())
}

function watching() {
    watch(['src/scss/style.scss'], styles)
    watch(['src/js/main.js'], scripts)
    watch(['src/*.html']).on('change', browserSync.reload);
  }

function browsersync (){
  browserSync.init({
    server: {
        baseDir: "src/"
    }
});
}  
function cleanDist()  {
  return src('dist')
  .pipe(clean())
}

function building() {
  return src ([
    'src/css/style.min.css',
    'src/js/main.min.js',
    'src/**/*.html'
  ], {base : 'src'})
    .pipe(dest('dist'))
}

exports.styles = styles;
exports.scripts = scripts;
exports.watching = watching;
exports.browsersync = browsersync;

exports.build = series(cleanDist, building);
exports.default = parallel(styles, scripts, browsersync, watching);

вот что выдает терминал
maximus@Notebook MINGW64 ~/Desktop/Pink
$ gulp
[13:14:07] Using gulpfile ~\Desktop\Pink\gulpfile.js
[13:14:07] Starting 'default'...
[13:14:07] Starting 'styles'...
[13:14:07] Starting 'scripts'...
[13:14:07] Starting 'browsersync'...
[13:14:07] Starting 'watching'...
[13:14:07] 'styles' errored after 23 ms
[13:14:07] TypeError: dest.on is not a function
    at Readable.pipe (C:\Users\maximus\Desktop\Pink\node_modules\readable-stream\lib\_stream_readable.js:564:8)
    at styles (C:\Users\maximus\Desktop\Pink\gulpfile.js:23:6)
    at bound (node:domain:432:15)
    at runBound (node:domain:443:12)
    at asyncRunner (C:\Users\maximus\Desktop\Pink\node_modules\async-done\index.js:55:18)
    at process.processTicksAndRejections (node:internal/process/task_queues:77:11)
[13:14:07] 'default' errored after 29 ms
  • Вопрос задан
  • 30 просмотров
Решения вопроса 1
sfi0zy
@sfi0zy
Creative frontend developer
Ошибка вида TypeError: dest.on is not a function говорит о том, что что-то в вашем пайплайне не является потоком. Она отправляет нас сюда:

src('src/scss/style.scss')
    .pipe(autoprefixer({overrideBrowserslist: ['last 10 version']}))
    .pipe(concat('style.min.css'))
    .pipe(scss({outputStyle: 'compressed'}))
    .pipe(dest('src/css'))
    .pipe(browserSync.stream())


Нужно каждый pipe тут проверить. Первый сразу выглядит подозрительно. Согласно официальной документации autoprefixer в gulp интегрируется по-другому. Вероятно на нем все и ломается.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы