vue-h5-template
基于 vue-cli3.0+webpack 4+vant ui + sass+ rem 适配方案+axios 封装,构建手机端模板脚手架
demo建议手机端查看
目录
- √ 配置多环境变量
- √ rem 适配方案
- Vue-cli4
- VantUI 组件按需加载
- Sass
- Webpack 4
- Vuex
- Axios 封装
- 生产环境 cdn 优化首屏加速
- babel 低版本浏览器兼容
- Eslint+Pettier 统一开发规范
配置多环境变量
NODE_ENV 和 BASE_URL 是两个特殊变量,在代码中始终可用
package.json
里的 scripts
配置 serve
stage
build
,通过 --mode xxx
来执行不同环境
- 通过
npm run serve
启动本地 , 执行development
- 通过
npm run stage
打包测试 , 执行staging
- 通过
npm run build
打包正式 , 执行production
"scripts": {
"serve": "vue-cli-service serve --open",
"stage": "vue-cli-service build --mode staging",
"build": "vue-cli-service build",
}
配置介绍
以 VUE_APP_
开头的变量,在代码中可以通过 process.env.VUE_APP_
访问。
比如,VUE_APP_ENV = 'development'
通过process.env.VUE_APP_ENV
访问
在项目根目录中新建.env
- .env.development 本地开发环境配置
NODE_ENV='development'
# must start with VUE_APP_
VUE_APP_ENV = 'development'
- .env.staging 测试环境配置
NODE_ENV='production'
# must start with VUE_APP_
VUE_APP_ENV = 'staging'
- .env.production 正式环境配置
NODE_ENV='production'
# must start with VUE_APP_
VUE_APP_ENV = 'production'
这里我们并没有定义很多变量,只定义了基础的 VUE_APP_ENV development
staging
production
变量我们统一在 src/config/env.*.js 里进行管理。修改起来方便,不需要重启项目,符合开发习惯。
config/index.js
// 根据环境引入不同配置 process.env.NODE_ENV
const config = require('./env.' + process.env.VUE_APP_ENV)
module.exports = config
配置对应环境的变量,拿本地环境文件 env.development.js
举例,用户可以根据需求修改
// 本地环境配置
module.exports = {
title: 'vue-h5-template',
baseUrl: 'http://localhost:9018', // 项目地址
baseApi: 'https://test.xxx.com/api', // 本地api请求地址
APPID: 'xxx',
APPSECRET: 'xxx'
}
根据环境不同,变量就会不同了
// 根据环境不同引入不同baseApi地址
import {baseApi} from '@/config'
console.log(baseApi)
rem 适配方案
不用担心,项目已经配置好了 rem
适配, 下面仅做介绍:
Vant 中的样式默认使用px
作为单位,如果需要使用rem
单位,推荐使用以下两个工具:
-
postcss-pxtorem 是一款
postcss
插件,用于将单位转化为rem
-
lib-flexible 用于设置
rem
基准值
PostCSS 配置
下面提供了一份基本的 postcss
配置,可以在此配置的基础上根据项目需求进行修改
// https://github.com/michael-ciniawsky/postcss-load-config
module.exports = {
plugins: {
autoprefixer: {
overrideBrowserslist: ['Android 4.1', 'iOS 7.1', 'Chrome > 31', 'ff > 31', 'ie >= 8']
},
'postcss-pxtorem': {
rootValue: 37.5,
propList: ['*']
}
}
}
更多详细信息: vant
新手必看,老鸟跳过
很多小伙伴会问我,适配的问题。
举个例子:设计给了你一张 750px * 1334px 图片,在 iPhone6 上铺面屏幕,其他机型适配。
- 当
rootValue: 70
, 样式width: 750px;height: 1334px;
图片会撑满 iPhone6 屏幕,这个时候切换其他机型,图片也会跟着撑满。
- 当
rootValue: 37.5
的时候,样式width: 375px;height: 667px;
图片会撑满 iPhone6 屏幕。
本案例采用 Vant 是基于 375 设计稿 , rootValue: 37.5。其他的你就可以根据你设计图,去做对应的设置了。
当然,想要撑满屏幕你可以使用100%,这里只是举例说明。
<img class="image" src="https://imgs.solui.cn/weapp/logo.png" />
<style>
/* rootValue: 75 */
.image {
width: 750px;
height: 1334px;
}
/* rootValue: 37.5 */
.image {
width: 375px;
height: 667px;
}
</style>
总结
因为项目刚刚构建起来,后面还会持续更新,实际使用过程中一定还有很多问题,如果文章中有错误希望能够被指正,一起成长
关于我
获取更多技术相关文章,关注公众号”前端女塾“。
回复加群,即可加入”前端仙女群“
扫描添加下方的微信并备注 Sol 加交流群,交流学习,及时获取代码最新动态。
如果对你有帮助送我一颗小星星(づ ̄3 ̄)づ╭~