微信小程序 ·

微信小程序通过gulp把scss文件编译为wxss文件

微信小程序通过gulp把scss文件编译为wxss文件

一、全局下载gulp

npm i gulp -g

二、初始化npm

npm init -y

三、项目根目录下载相关依赖

npm i gulp gulp-changed gulp-rename gulp-sass gulp-watch sass -D

四、项目根目录创建gulpfile.js文件

const gulp = require('gulp')
const sass = require('gulp-sass')(require('sass'))
const rename = require('gulp-rename')
const changed = require('gulp-changed')
const watcher = require('gulp-watch')

gulp.task('default', gulp.series(function () {
  watcher('../mini-code/pages/**/*.scss', function () {
    miniSass('pages')
  })
  watcher('../mini-code/component/**/*.scss', function () {
    miniSass('component')
  })
}))

gulp.task('sass', function () {
  miniSass('pages')
  miniSass('component')
})

function miniSass(folder) {
  return gulp.src('../mini-code/' + folder + '/**/*.scss')
    .pipe(sass({
      outputStyle: 'compressed'
    }))
    .pipe(rename((path) => {
      path.extname = '.wxss'
    }))
    .pipe(changed('../mini-code/' + folder))
    .pipe(gulp.dest('../mini-code/' + folder))
    .pipe(rename(path => {
      console.log('编译完成文件:' + '..\\mini-code\\' + folder + '\\' + path.dirname + '\\' + path.basename + '.scss')
    }))
}

命令行输入 gulp 就可以运行了,如果scss文件语法错误会停止监听以及编译,修改为正确的语法,重新输入 gulp 就行。

目前使用这种方法同时监听pages和component两个文件夹下的scss文件,但是存在一些问题,正在寻找解决方案。