微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Ionic V1 项目中 Gulp/SASS 的问题

如何解决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 举报,一经查实,本站将立刻删除。