Ionic V1 项目中 Gulp/SASS 的问题

问题描述

我有一个仍在运行 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.3gulp 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 (将#修改为@)