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 相关文章推荐
将HTML自动转为JS代码
Jun 26 Javascript
JavaScrip实现PHP print_r的数功能(三种方法)
Nov 12 Javascript
前端轻量级MVC框架CanJS详解
Sep 26 Javascript
浅谈JavaScript的push(),pop(),concat()方法
Jun 03 Javascript
JS添加删除DIV的简单实例
Jul 08 Javascript
浅谈js中调用函数时加不加括号的问题
Jul 28 Javascript
JS实现向iframe中表单传值的方法
Mar 24 Javascript
vue.js 左侧二级菜单显示与隐藏切换的实例代码
May 23 Javascript
微信小程序项目总结之点赞 删除列表 分享功能
Jun 25 Javascript
详解如何使用nvm管理Node.js多版本
May 06 Javascript
vue实现计算器功能
Feb 22 Javascript
JavaScript实现简单拖拽效果
Sep 15 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 discuz 主题表和回帖表的设计
2009/03/13 PHP
PHP 网页过期时间的控制代码
2009/06/29 PHP
从零开始学YII2框架(四)扩展插件yii2-kartikgii
2014/08/20 PHP
PHP合并discuz用户脚本的方法
2015/08/04 PHP
PHP实现获取第一个中文首字母并进行排序的方法
2017/05/09 PHP
php无限级评论嵌套实现代码
2018/04/18 PHP
PHP实现数组向任意位置插入,删除,替换数据操作示例
2019/04/05 PHP
js 提交和设置表单的值
2008/12/19 Javascript
js弹窗返回值详解(window.open方式)
2014/01/11 Javascript
JavaScript中的关联数组问题
2015/03/04 Javascript
全面解析Bootstrap排版使用方法(文字样式)
2015/11/30 Javascript
js时间查询插件使用详解
2017/04/07 Javascript
关于layui 下拉列表的change事件详解
2019/09/20 Javascript
vue-router 中 meta的用法详解
2019/11/01 Javascript
关于vue3.0中的this.$router.replace({ path: '/'})刷新无效果问题
2020/01/16 Javascript
vue实现div单选多选功能
2020/07/16 Javascript
JavaScript 闭包的使用场景
2020/09/17 Javascript
Python将阿拉伯数字转换为罗马数字的方法
2015/07/10 Python
恢复百度云盘本地误删的文件脚本(简单方法)
2017/10/21 Python
浅谈关于Python3中venv虚拟环境
2018/08/01 Python
Python while true实现爬虫定时任务
2020/06/08 Python
Python sorted对list和dict排序
2020/06/09 Python
Python中三维坐标空间绘制的实现
2020/09/22 Python
TensorFlow2.0使用keras训练模型的实现
2021/02/20 Python
详解快速开发基于 HTML5 网络拓扑图应用
2018/01/08 HTML / CSS
Parts Express:音频、视频和扬声器的第一来源
2017/04/25 全球购物
Hotter Shoes英国官网:英伦风格,舒适的鞋子
2017/12/28 全球购物
TUMI新加坡官网:国际领先的商旅箱包品牌
2019/01/12 全球购物
英国在线药房和在线药剂师:Chemist 4 U
2020/01/05 全球购物
Pandora德国官网:购买潘多拉手链、戒指、项链和耳环
2020/02/20 全球购物
现代化办公人员工作的自我评价
2013/10/16 职场文书
旅游节目策划方案
2014/05/26 职场文书
行政秘书工作自我鉴定
2014/09/15 职场文书
离婚协议书怎样才有法律效力
2014/10/10 职场文书
党的群众路线教育实践活动学习计划
2014/11/03 职场文书
搞笑Gif:这么白这么长的腿像极了一楼的女朋友
2022/03/21 杂记