微信小程序使用的是wxss而非css,它引入了rpx来解决不同设备尺寸差异的问题,可以很好地适配不同的手机尺寸,但同样具有css无法运算、嵌套和定义变量的问题,所以我使用了gulp+less对wxss进行构建,详细配置如下:
var gulp = require('gulp'); // 载入Gulp模块
var less = require('gulp-less'); // 载入gulp-less模块
var autoprefixer = require('gulp-autoprefixer');//兼容浏览器
var cssnano = require('gulp-cssnano'); //css优化分离
var browserSync = require('browser-sync');//热刷新服务器
var reload = browserSync.reload;
// LESS编译 压缩
gulp.task('less', function() {
gulp.src(['src/css/*.less', '!src/css/_*.less'])
//less中使用@import url('_a.less') 不进行编译
.pipe(less())
.pipe(autoprefixer({
browsers: ['last 2 versions']
}))
.pipe(cssnano())
.pipe(gulp.dest('dist/css'))
.pipe(reload({
stream: true
}));
});
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
var babel=require('gulp-babel')
var browserify=require('gulp-browserify')
// JS合并 压缩混淆
gulp.task('js', function() {
gulp.src('src/js/*.js')
.pipe(concat('app.js'))// JS合并
.pipe(babel()) //使用es6,加此项
.pipe(browserify({ //浏览器中兼容require等,使用async时使用
insertGlobals: true
}))
.pipe(uglify())// JS压缩混淆
.pipe(gulp.dest('dist/js'))
.pipe(reload({ //热更新
stream: true
}));
});
// 图片复制
gulp.task('pic', function() {
gulp.src('src/pic/*.*')
.pipe(gulp.dest('dist/pic'))
.pipe(reload({
stream: true
}));
})
var htmlmin = require('gulp-htmlmin');
// HTML 压缩
gulp.task('html', function() {
gulp.src('src/*.html')
.pipe(htmlmin({
collapseWhitespace: true,
collapseBooleanAttributes: true,
removeAttributeQuotes: true,
removeComments: true,
removeEmptyAttributes: true,
removeScriptTypeAttributes: true,
removeStyleLinkTypeAttributes: true,
}))
.pipe(gulp.dest('dist'))
.pipe(reload({
stream: true
}));
});
//将serve分解成四个任务
gulp.task('serve', ['less', 'js', 'pic', 'html'], function() {
browserSync({
notify: false,
port: 3003,
server: {
baseDir: ['dist']
}
},function (err, bs) {
console.log(bs.options.getIn(["urls", "local"]));
});
//监视更改,热更新
gulp.watch('src/css/*.less', ['less']);
gulp.watch('src/js/*.js', ['js']);
gulp.watch('src/pic/*.*', ['pic']);
gulp.watch('src/*.html', ['html']);
});
gulp.task('default',['serve']); //设置gulp快捷方式
网友评论