众所周知,小程序主包的大小限制在 2M 以内,对于日益庞大的工程项目,开发者们无所不用其极地进行优化。
公司小程序使用 Taro 开发, ts 文件编译成 js 文件 、json文件、 wxml 文件, scss 文件编译成 wxss.
Taro构建生产环境的时候会自动压缩代码, 但开发环境并不会.
当需要真机调试、给别人体验时总是受到单包2M大小限制, 只能中止watch模式重新打包, 非常浪费时间.
gulp 将开发流程中让人痛苦或耗时的任务自动化,从而减少你所浪费的时间、创造更大价值。
代码优于配置、node 最佳实践、精简的 API 集,gulp 让工作前所未有的简单。
基于 node 强大的流(stream)能力,gulp 在构建过程中并不把文件立即写入磁盘,从而提高了构建速度。
遵循严格的准则,确保我们的插件结构简单、运行结果可控。
Taro watch模式下使用 gulp-uglify 和 gulp-cssnano 压缩文件
task('uglify', async function(done) {
await src(`${outputRoot}/**/*.js`)
.pipe(uglify()) // 压缩js代码
.pipe(dest(outputRoot))
done()
})
task('cssnano', async function(done) {
await src(`${outputRoot}/**/*.wxss`)
.pipe(
cssnano({
zindex: false,
autoprefixer: false,
reduceIdents: false
})
) // 压缩js代码
.pipe(dest(outputRoot))
done()
})
task(
'default',
parallel('uglify', 'cssnano', function(done) {
done()
})
)