在用vue框架时,经常用到两种环境,一种是开发环境,就是本地开发时的环境,一种是生产环境,就是要发布到线上的环境。
平时开发是用生产环境的,如果发布到线上时,需要切换环境为线上。如果人为去切换也是可以的,但是会容易忘记,可以通过配置不同的运行命令来自动切换环境。
下面开始:
实现原理就是采用node.js顶层对象中的process.env(进程环境,返回一个包含用户环境信息的对象)属性,根据各个环境的配置文件区分和切换环境
npm install process
.env.dev 和.env.prod两个文件注意文件要创建在根目录下面
.env.dev文件内容如下:
- NODE_ENV = 'development'
- VUE_APP_TITLE = 'development'
- /* 请求接口地址 */
- VUE_APP_INTERFACE_URL="https://xxx"
- /* proxy代理地址 */
- VUE_APP_PROXYURL='http://xxx'
.env.prod文件内容如下:
- NODE_ENV='production'
- VUE_APP_TITLE='prod'
- /* 请求接口地址 */
- VUE_APP_INTERFACE="https://xxx"
如果有需要可以添加一个.env.test的测试环境文件,内容如下:
- NODE_ENV='production'
- VUE_APP_TITLE='test'
- /* 请求接口地址 */
- VUE_APP_INTERFACE="https://xxx"
只需要在项目启动命令后面修改需要的环境就行了,例如npm run dev,把--mode dev改为--mode prod就变成了开发环境
package.json部分内容如下:
- "scripts":{
- "dev":"vue-cli-service serve --mode dev",//以.env.dev中的接口地址本地运行
- "prod":"vue-cli-service serve --mode prod",//以.env.pro中的接口地址本地运行
- "build": "vue-cli-service build",//以.env.pro中的接口地址打正式包
- "build:test": "vue-cli-service build --mode test"//以.env.test中的接口地址打测试包
- }
在main.js文件中打印当前环境,输出就成功了console.log(process.env.NODE_ENV)