ReferenceError в gulpfile - PullRequest
       50

ReferenceError в gulpfile

0 голосов
/ 07 февраля 2019
var gulp = require('gulp');
var sass = require('gulp-sass');

gulp.task('sass', done => {
    gulp.src('./css/**/*.sass')
        .pipe(sourcemaps.init())
        .pipe(sass({outputStyle: 'expanded'}).on('error', sass.logError))
        .pipe(sourcemaps.write('.'))
        .pipe(gulp.dest('.'));

    done()
});

gulp.task('sass:watch', done => {
    gulp.watch('./css/**/*.sass', gulp.series('sass'));

    done()
});

gulp.task('compressed-js', done => {
    gulp.src('js/src/*.js')
        .pipe(uglify())
        .pipe(rename({suffix: '.min'}))
        .pipe(gulp.dest('js'));

    done()
});

gulp.task('compressed-js:watch', done => {
    gulp.watch('./js/src/*.js', gulp.series('compressed-js'));

    done()
});

При phpstorm получении этого ошибка : "ReferenceError: sourcemaps is not defined"

1 Ответ

0 голосов
/ 07 февраля 2019

Ошибка довольно очевидна: вы ссылаетесь на переменную sourcemaps, пока она не существует.

Обычно вам нужно объявить ее нав верхней части вашего gulpfile, вот так:

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

Однако Gulp 4 имеет встроенную * исходную функциональность , поэтому вы можете переписать вашу задачу sass следующим образом:

gulp.task('sass', () =>
  gulp.src('./css/**/*.sass', { sourcemaps: true })
    .pipe(sass({ outputStyle: 'expanded' }).on('error', sass.logError))
    .pipe(gulp.dest('.', { sourcemaps: '.' }))
);

Обратите внимание, что я удалил обратный вызов done, который не нужен, если вы просто возвращаете поток.

Обратите внимание, что вы столкнетесь с той же проблемой при запуске задачи compressed-js.Вам нужно определить uglify и rename:

var uglify = require('gulp-uglify');
var rename = require('gulp-rename');

и убедиться, что необходимые вам пакеты установлены.

...