作者:花花小仙女
转发链接:https://mp.weixin.qq.com/s/c9uAYkWJu-zvKfELh_3V0A
前言
基于 vue-cli4.0+webpack 4+vant ui + sass+ rem 适配方案+axios 封装,构建手机端模板脚手架,开箱即用,让开发变得更简单。
先夸一下自己,收到了很多人的好评。这次好好整理一文,你们的鼓励就是我前进的动力。
github:https://github.com/sunniejs/vue-h5-template
Node 版本要求
Vue CLI它需要 Node.js 8.9 或更高版本 (推荐 8.11.0+)。你可以使用 nvm 或nvm-windows 在同一台电脑中管理多个 Node 版本。
本示例 Node.js 12.14.1
启动项目
git clone https://github.com/sunniejs/vue-h5-template.gitcd vue-h5-templatenpm installnpm run serve
目录
- √ Vue-cli4
- √ 配置多环境变量
- √ rem 适配方案
- √ VantUI 组件按需加载
- √ Sass 全局样式
- √ Vuex 状态管理
- √ Axios 封装及接口管理
- √ Vue-router
- √ Webpack 4 vue.config.js 基础配置
- √ 配置 proxy 跨域
- √ 配置 alias 别名
- √ 配置 打包分析
- √ 配置 externals 引入 cdn 资源
- √ 去掉 console.log
- √ splitChunks 单独打包第三方模块
- √ 添加 IE 兼容
- √ Eslint+Pettier 统一开发规范
✅ 配置多环境变量
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 访问。 除了 VUE_APP_* 变量之外,在你的应用代码中始终可用的还有两个特殊的变量NODE_ENV 和BASE_URL
在项目根目录中新建.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 下新建三个对应的文件呢?修改起来方便,不需 要重启项目,符合开发习惯。
config/index.js
// 根据环境引入不同配置 process.env.NODE_ENVconst 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)