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"
最佳答案
error非常不言自明:您指的是sourcemaps
变量,但该变量不存在。
通常,您需要在gulpfile的顶部声明它,如下所示:
var sourcemaps = require('gulp-sourcemaps');
但是,Gulp 4具有sourcemap functionality built-in,因此您可以像这样重写
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');
并确保已安装所需的软件包。