vue cli4下环境变量和模式示例详解


Posted in Javascript onApril 09, 2020

本文介绍了vue cli4下环境变量和模式示例详解,分享给大家,具体如下:

官方文档

环境变量

一个环境变量文件只包含环境变量的键值对:

NODE_ENV=development
VUE_APP_BASE_URL=http://127.0.0.1:8080/

注意:

  • NODE_ENV - 是 “development”、“production” 、"test"或者自定义的值。具体的值取决于应用运行的模式
  • BASE_URL - 会和 vue.config.js 中的 publicPath 选项相符,即你的应用会部署到的基础路径
  • 除了 NODE_ENV 和 BASE_URL,其他的环境变量必须以 VUE_APP_ 开头
  • 项目中使用:process.env.环境变量名,eg:VUE_APP_BASE_URL

模式

模式是 Vue CLI 项目中一个重要的概念。默认情况下,一个 Vue CLI 项目有三个模式:

  • development 模式用于 vue-cli-service serve
  • production 模式用于 vue-cli-service build 和 vue-cli-service test:e2e
  • test 模式用于 vue-cli-service test:unit

注意点:

  • 一个模式可以包含多个环境变量
  • 每个模式都会将环境变量中 NODE_ENV 的值设置为模式的名称
  • 可以通过为 .env 文件增加后缀来设置某个模式下特有的环境变量
  • 为一个特定模式准备的环境文件 (例如 .env.production) 将会比一般的环境文件 (例如 .env) 拥有更高的优先级
  • 此外,Vue CLI 启动时已经存在的环境变量拥有最高优先级,并不会被 .env 文件覆写
.env        # 在所有的环境中被载入
.env.local     # 在所有的环境中被载入,但会被 git 忽略
.env.[mode]     # 只在指定的模式中被载入,优先级高于.env和.env.local
.env.[mode].local  # 只在指定的模式中被载入,但会被 git 忽略,优先级高于.env和.env.local

例子:不同模式下,为axios指定不同的baseUrl

创建development模式的环境变量文件,项目根目录下新建.env.development文件

NODE_ENV=development
VUE_APP_BASE_URL=http://127.0.0.1:8080/

创建production模式的环境变量文件,项目根目录下新建.env.production文件

NODE_ENV=production
VUE_APP_BASE_URL=/

在src目录下main.js文件中使用环境变量

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模式

在项目根目录下新建环境变量文件.env.fat

NODE_ENV=fat
VUE_APP_BASE_URL=http://fat.com/

根目录下package.json中新增脚本命令

{
 "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模式下的环境变量了

到此这篇关于vue cli4下环境变量和模式示例详解的文章就介绍到这了,更多相关vue cli4环境变量和模式内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
JS网络游戏-(模拟城市webgame)提供的一些例子下载
Oct 14 Javascript
ExtJS 2.0实用简明教程 之获得ExtJS
Apr 29 Javascript
JavaScript 学习笔记(十一)
Jan 19 Javascript
基于jquery的滚动新闻列表
Jun 19 Javascript
9行javascript代码获取QQ群成员具体实现
Oct 16 Javascript
分享五个有用的jquery小技巧
Oct 08 Javascript
js选择器全面解析
Jun 27 Javascript
bootstrap实现图片自动轮播
Dec 21 Javascript
node.js利用socket.io实现多人在线匹配联机五子棋
May 31 Javascript
Vue开发之封装上传文件组件与用法示例
Apr 25 Javascript
jQuery加PHP实现图片上传并提交的示例代码
Jul 16 jQuery
vue 弹出遮罩层样式实例
Jul 22 Javascript
微信小程序实现组件顶端固定或底端固定效果(不随滚动而滚动)
Apr 09 #Javascript
微信小程序吸底区域适配iPhoneX的实现
Apr 09 #Javascript
加速vue组件渲染之性能优化
Apr 09 #Javascript
javascript设计模式 ? 抽象工厂模式原理与应用实例分析
Apr 09 #Javascript
javascript设计模式 ? 工厂模式原理与应用实例分析
Apr 09 #Javascript
javascript设计模式 ? 简单工厂模式原理与应用实例分析
Apr 09 #Javascript
javascript设计模式 ? 单例模式原理与应用实例分析
Apr 09 #Javascript
You might like
海贼王动画变成“真人”后,凯多神还原,雷利太帅了!
2020/04/09 日漫
LotusPhp笔记之:Logger组件的使用方法
2013/05/06 PHP
微信公众号之主动给用户发送消息功能
2019/06/22 PHP
获取JavaScript用户自定义类的类名称的代码
2007/03/08 Javascript
Jquery.TreeView结合ASP.Net和数据库生成菜单导航条
2010/08/27 Javascript
JS网页图片按比例自适应缩放实现方法
2014/01/15 Javascript
jQuery中:has选择器用法实例
2014/12/30 Javascript
javascript结合fileReader 实现上传图片
2015/01/30 Javascript
DOM事件阶段以及事件捕获与事件冒泡先后执行顺序(图文详解)
2015/08/18 Javascript
JS获取当前脚本文件的绝对路径
2016/03/02 Javascript
JavaScript中自带的 reduce()方法使用示例详解
2016/08/10 Javascript
JavaScript数组去重的几种方法效率测试
2016/10/23 Javascript
在JSP中如何实现MD5加密的方法
2016/11/02 Javascript
使用BootStrap进行轮播图的制作
2017/01/06 Javascript
纯JS实现弹性导航条效果
2017/03/06 Javascript
js封装成插件的步骤方法
2017/09/11 Javascript
JavaScript事件处理程序详解
2017/09/19 Javascript
详解在Vue中有条件地使用CSS类
2017/09/30 Javascript
详解webpack+ES6+Sass搭建多页面应用
2018/11/05 Javascript
vue改变对象或数组时的刷新机制的方法总结
2019/04/24 Javascript
JavaScript中的垃圾回收与内存泄漏示例详解
2019/05/02 Javascript
javascript实现拖拽碰撞检测
2020/03/12 Javascript
vue实现简单跑马灯效果
2020/05/25 Javascript
Python使用分布式锁的代码演示示例
2018/07/30 Python
python实现zabbix发送短信脚本
2018/09/17 Python
Django 项目重命名的实现步骤解析
2019/08/14 Python
pytorch SENet实现案例
2020/06/24 Python
实例讲解HTML5的meta标签的一些应用
2015/12/08 HTML / CSS
IRO美国官网:法国服装品牌
2018/03/06 全球购物
施工班组长岗位职责
2014/01/05 职场文书
单位租车协议书
2015/01/29 职场文书
中学生社区服务活动报告
2015/02/05 职场文书
无锡灵山大佛导游词
2015/02/09 职场文书
主持人开场白台词
2015/05/29 职场文书
再读《皇帝的新衣》的读后感悟!
2019/08/07 职场文书
mysql insert 存在即不插入语法说明
2022/03/25 MySQL