当前位置: 首页 > Web前端 > vue.js

小程序-工程优化-自动化构建

时间:2023-04-01 10:41:55 vue.js

小程序是一种新的开放能力,开发者可以快速开发小程序。小程序可以在微信内轻松获取和传播,同时具有极佳的用户体验。小程序痛点不支持css预编译器,作为主流的css解决方案,无论是less,sass,stylus都可以提高css效率不支持ES7等后续js特性,好用的asyncawait等特性无法使用(JavaScript支持小程序)不支持导入外部字体文件,只支持base64,没有eslint等代码检查工具Applet框架taro:京东前端团队mpvue:美团前端团队WePY:微信前端团队uni-app:DCloudChameleon:滴滴前端团队图片来自aotu.io基于glup的小程序自动化构建。glup简介特性基于Stream的自动化构建工具1.代码优于配置,node最佳实践,精简的API集,gulp让工作变得前所未有的简单。2、基于node强大的流式处理能力,gulp在构建过程中不会立即将文件写入磁盘,从而提高了构建速度。3.遵循严格的准则,确保插件结构简单,运行结果可控。使用CreateGulpfile创建任务(task)css预编译函数task_css(){returngulp.src(cssFile,{since:gulp.lastRun(task_css),allowEmpty:true}).pipe(sass()).on('error',sass.logError).pipe(rename(path=>{path.extname='.wxss'})).pipe(gulp.dest('../dist/'))}支持ES7等后续js特性functiontask_js(){returngulp.src(jsFile,{since:gulp.lastRun(task_js),allowEmpty:true}).pipe(eslint()).pipe(preprocess({context:{//这里可接受NODE_ENV参数来自调用命令NODE_ENV:process.env.NODE_ENV||'ONLINE',NODE_VERSION:version},})).pipe(babel({presets:['@babel/env']})).pipe(gulp.dest('../dist/'))}支持导入外部字体文件,fontSpider=require('gulp-font-spider'),gulp.task('testfont',function(){gulp.src('*.html').pipe(fontSpider()).pipe(notify({message:'fontcompressdone'}));});eslint代码检查"scripts":{"lint":"eslint--ext.js--ignore-path.eslintignore.","fix":"eslint--fix--ignore-path.eslintignore.",},"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"src/**/*.{js,scss}":["eslint--ext","gitadd"]},live自动构建函数task_watch(){gulp.watch(cssFile,task_css)gulp.watch(jsFile,task_js)gulp.watch(jsonFile,task_json)gulp.watch(imageFile,task_image)gulp.watch(wxmlFile,task_wxml)gulp.watch(configJson,task_npm)}任务组合+默认任务gulp.task('default',gulp.series(task_clean,gulp.parallel(task_package_json,task_npm,task_css,task_js,task_json,task_wxml,task_image,task_watch)))