问题描述
我有一个仍在运行 Ionic V1 的旧项目,我一直在尝试解决 Gulp 和 SASS 出现的问题。
当我尝试构建项目时,我的 CLI 会抛出此错误:
Cannot load gulp: ReferenceError: primordials is not defined
Cannot run sass task: missing in gulpfile.js
这是我当前的 gulpfile.js:
var gulp = require('gulp');
var sass = require('gulp-sass');
var cleanCss = require('gulp-clean-css');
var rename = require('gulp-rename');
var paths = {
sass: ['./scss/**/*.scss']
};
gulp.task('default',['sass']);
gulp.task('sass',function(done) {
gulp.src('./scss/ionic.app.scss')
.pipe(sass())
.on('error',sass.logError)
.pipe(gulp.dest('./www/css/'))
.pipe(cleanCss({
keepSpecialComments: 0
}))
.pipe(rename({ extname: '.min.css' }))
.pipe(gulp.dest('./www/css/'))
.on('end',done);
});
gulp.task('watch',['sass'],function() {
gulp.watch(paths.sass,['sass']);
});
经过一番搜索,我认为可能是由于我的环境运行 node v12.16.3
、gulp 3.5.6
和 @ionic/v1-toolkit v1.0.22
。
我尝试将我的 v1-toolkit 升级到 3.2.15 我的 gulp 到 4.0.2,然后将我的 gulpfile.js 更新到这个 (reference):
const gulp = require('gulp'),path = require("path"),sass = require('gulp-sass');
function sass() {
return gulp.src('./scss/ionic.app.scss')
.pipe(sass()).on('error',sass.logError)
.pipe(gulp.dest('./www/css/'));
}
function watch(done) {
gulp.watch(paths.sass,() => sass());
if (done) done();
}
function watch(done) {
gulp.watch(paths.sass,() => sass());
if (done) done();
}
exports.sass = sass;
exports.watch = watch;
exports['ionic:serve:before'] = gulp.series(sass,watch); // Alias need need by @ionic/cli
但后来我收到了这个错误:
语法错误:已声明标识符“sass”。
有没有想过需要做什么才能让 gulp/sass 在 v1 项目中正常工作?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)