官方文档
一个环境变量文件只包含环境变量的键值对:
NODE_ENV=development
VUE_APP_BASE_URL=http://127.0.0.1:8080/
注意:
模式是 Vue CLI 项目中一个重要的概念。默认情况下,一个 Vue CLI 项目有三个模式:
注意点:
.env # 在所有的环境中被载入
.env.local # 在所有的环境中被载入,但会被 git 忽略
.env.[mode] # 只在指定的模式中被载入,优先级高于.env和.env.local
.env.[mode].local # 只在指定的模式中被载入,但会被 git 忽略,优先级高于.env和.env.local
NODE_ENV=development
VUE_APP_BASE_URL=http://127.0.0.1:8080/
NODE_ENV=production
VUE_APP_BASE_URL=/
import Vue from 'vue'
import App from './App.vue'
// 导入axios
import axios from 'axios'
// 设置请求根路径,使用环境变量
axios.defaults.baseURL = process.env.VUE_APP_BASE_URL
// axios拦截器
axios.interceptors.request.use(config => {
// 为请求头对象,添加Token验证的Authorization字段
config.headers.Authorization = window.sessionStorage.getItem('token')
// 在最后必须return config
return config
})
// 挂载到vue
Vue.prototype.$http = axios
Vue.config.productionTip = false
new Vue({
router,
render: h => h(App)
}).$mount('#app')
也可以在其他vue组件中打印
console.log(process.env.NODE_ENV)
console.log(process.env.VUE_APP_BASE_URL)
console.log(this.$http.defaults.baseURL)
npm run serve
自定义一个fat模式
NODE_ENV=fat
VUE_APP_BASE_URL=http://fat.com/
{
"name": "vue_shop",
"version": "0.1.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
// 这条命令是我自定义的,通过--mode指定模式为fat
"fat": "vue-cli-service serve --mode fat",
"lint": "vue-cli-service lint"
},
"dependencies": {
"axios": "^0.19.2",
"core-js": "^3.4.4",
"echarts": "^4.6.0",
"element-ui": "^2.4.5",
"vue": "^2.6.10",
"vue-router": "^3.1.3"
},
"devDependencies": {
"@vue/cli-plugin-babel": "^4.1.0",
"@vue/cli-plugin-eslint": "^4.1.0",
"@vue/cli-plugin-router": "^4.1.0",
"@vue/cli-service": "^4.1.0",
"@vue/eslint-config-standard": "^4.0.0",
"babel-eslint": "^10.0.3",
"babel-plugin-component": "^1.1.1",
"eslint": "^5.16.0",
"eslint-plugin-vue": "^5.0.0",
"less": "^3.10.3",
"less-loader": "^5.0.0",
"vue-cli-plugin-element": "^1.0.1",
"vue-template-compiler": "^2.6.10"
}
}
npm run fat
这时候项目中读取的,就是fat模式下的环境变量了