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 相关文章推荐
div移动 输入框不能输入的问题
Nov 19 Javascript
js下通过prototype扩展实现indexOf的代码
Dec 08 Javascript
Javascript模块化编程(三)require.js的用法及功能介绍
Jan 17 Javascript
纯JS实现根据CSS的class选择DOM
Mar 22 Javascript
jquery实现效果比较好的table选中行颜色
Mar 25 Javascript
JavaScript实现阿拉伯数字和中文数字互相转换
Jun 12 Javascript
浅谈JavaScript中数组的增删改查
Jun 20 Javascript
Bootstrap框架下下拉框select搜索功能
Mar 26 Javascript
微信小程序 省市区选择器实例详解(附源码下载)
Jan 05 Javascript
浅谈React Native Flexbox布局(小结)
Jan 08 Javascript
JS运动特效之同时运动实现方法分析
Jan 24 Javascript
javascript设计模式之装饰者模式
Jan 30 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
PHP输入流php://input介绍
2012/09/18 PHP
PHP中Socket连接及读写数据超时问题分析
2016/07/19 PHP
PHP实现统计在线人数功能示例
2016/10/15 PHP
php文件管理基本功能简单操作
2017/01/16 PHP
PHP实现的杨辉三角求解算法分析
2019/03/11 PHP
php使用fputcsv实现大数据的导出操作详解
2020/02/27 PHP
根据分辩率调用不同的CSS.
2007/01/08 Javascript
jquery 简单的进度条实现代码
2010/03/11 Javascript
JS 数字转换研究总结
2013/12/26 Javascript
JS之Date对象和获取系统当前时间详解
2014/01/13 Javascript
js简单抽奖代码
2015/01/16 Javascript
jQuery的position()方法详解
2015/07/19 Javascript
js实现表单多按钮提交action的处理方法
2015/10/24 Javascript
浅谈bootstrap源码分析之scrollspy(滚动侦听)
2016/06/06 Javascript
jQuery Easyui使用(一)之可折叠面板的布局手风琴菜单
2016/08/17 Javascript
Bootstrap3 datetimepicker控件使用实例
2016/12/13 Javascript
jQuery中map函数的两种方式
2017/04/07 jQuery
详解Javascript获取缓存和清除缓存API
2017/05/25 Javascript
清空元素html("") innerHTML="" 与 empty()的区别和应用(推荐)
2017/08/14 Javascript
JavaScript实现写入文件到本地的方法【基于FileSaver.js插件】
2018/03/15 Javascript
[01:52]深扒TI7聊天轮盘语音出处7
2017/05/11 DOTA
python实现域名系统(DNS)正向查询的方法
2016/04/19 Python
Python 查看list中是否含有某元素的方法
2018/06/27 Python
Windows系统Python直接调用C++ DLL的方法
2019/08/01 Python
python爬虫模拟浏览器访问-User-Agent过程解析
2019/12/28 Python
python中with用法讲解
2020/02/07 Python
Python 实现自动完成A4标签排版打印功能
2020/04/09 Python
基于python实现获取网页图片过程解析
2020/05/11 Python
详解Canvas 实现炫丽的粒子运动效果(粒子生成文字)
2018/02/01 HTML / CSS
State Cashmere官网:半零售价可持续蒙古羊绒
2020/02/26 全球购物
大学生职业生涯规划范文
2014/01/08 职场文书
优秀村官事迹材料
2014/01/10 职场文书
信息工作经验交流材料
2014/05/28 职场文书
第二批党的群众路线教育实践活动总结报告
2014/10/30 职场文书
后备干部推荐材料
2014/12/24 职场文书
2019最新版火锅店的创业计划书 !
2019/07/12 职场文书