有一些与此问题相关的主题,但我仍未找到解决问题的方法或解释。
问题
我正在使用Gulp 4.0.0
的本地版本,并且我先前存在的gulpfile.js
正常运行。
我在Gulp文件中正在做什么:监视Sass文件的更改,对其进行自动前缀,并将输出文件重命名为theme.scss.liquid
(对于Shopify),最后替换一些大括号以避开Liquid变量。
Sass任务
// Sass
gulp.task('sass', function() {
gulp.src('./assets/scss/**/**/*.scss')
.pipe(sass().on('error', function (err) {
sass.logError(err);
this.emit('end');
}))
.pipe(autoprefixer('last 2 versions'))
.pipe(rename('theme.scss.liquid'))
.pipe(replace('"{{', '{{'))
.pipe(replace('}}"', '}}'))
.pipe(gulp.dest('./assets/'));
});
观看任务
gulp.task('watch', function() {
gulp.watch('./assets/scss/**/**/*.scss', gulp.series('sass'));
});
会发生什么
gulp watch
开始监视更改。 [12:55:33] Starting 'watch'...
[12:55:37] Starting 'sass'...
任何帮助都将不胜感激!
答案 0 :(得分:1)
我对gulp.task
和gulp v4
有类似的问题
更好地采用新的gulp 4语法。
const gulp = require('gulp');
// other dependencies
// ....
const sassFn = (cb) => {
gulp.src('./assets/scss/**/*.scss')
.pipe(sass().on('error', sass.logError))
.pipe(autoprefixer('last 2 versions'))
.pipe(rename('theme.scss.liquid'))
.pipe(replace('"{{', '{{'))
.pipe(replace('}}"', '}}'))
.pipe(gulp.dest('./assets'));
cb();
};
const watchFn = () => {
gulp.watch('./assets/scss/**/*.scss', sassFn);
};
exports.watch = watchFn;
exports.default = watchFn;
我删除了gulp.series(),因为我认为它至少需要2个任务才能运行。
此外,我更改了src
和dest
的路径。