微信小程序 ·
微信小程序通过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文件,但是存在一些问题,正在寻找解决方案。
