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 相关文章推荐
JavaScript 无符号右移运算符
Apr 17 Javascript
js 效率组装字符串 StringBuffer
Dec 23 Javascript
JavaScript中判断原生函数检查function是否是原生代码
Sep 09 Javascript
使用不同的方法结合/合并两个JS数组
Sep 18 Javascript
jQuery/CSS3图片特效插件整理推荐
Dec 07 Javascript
node.js中的path.basename方法使用说明
Dec 09 Javascript
JavaScript通过join函数连接数组里所有元素的方法
Mar 20 Javascript
浅谈jQuery中的checkbox问题
Aug 10 Javascript
微信小程序  生命周期详解
Oct 27 Javascript
JQuery 又谈ajax局部刷新
Nov 27 jQuery
Vue中Table组件Select的勾选和取消勾选事件详解
Mar 19 Javascript
浅谈JavaScript节流和防抖函数
Aug 25 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 minixml详解
2008/07/19 PHP
PHP 文件扩展名 获取函数
2009/06/03 PHP
Php Ctemplate引擎开发相关内容
2012/03/03 PHP
PHP $_FILES中error返回值详解
2014/01/30 PHP
php+ajax实时刷新简单实例
2015/02/25 PHP
CodeIgniter基于Email类发邮件的方法
2016/03/29 PHP
非集成环境的php运行环境(Apache配置、Mysql)搭建安装图文教程
2016/04/12 PHP
js cookies实现简单统计访问次数
2009/11/24 Javascript
javascript 原型继承介绍
2011/08/30 Javascript
同一页面多个商品倒计时JS 基于面向对象的javascript
2012/02/16 Javascript
一个背景云变换js特效 鼠标移动背景云变化
2012/12/28 Javascript
使用jQuery避免鼠标双击的解决方案
2013/08/21 Javascript
JavaScript调试技巧之console.log()详解
2014/03/19 Javascript
jQuery源码分析之jQuery.fn.each与jQuery.each用法
2015/01/23 Javascript
《JavaScript函数式编程》读后感
2015/08/07 Javascript
jQuery Timelinr实现垂直水平时间轴插件(附源码下载)
2016/02/16 Javascript
javascript原型继承工作原理和实例详解
2016/04/07 Javascript
plupload+artdialog实现多平台上传文件
2016/07/19 Javascript
jQuery生成假加载动画效果
2016/12/01 Javascript
ES6(ECMAScript 6)新特性之模板字符串用法分析
2017/04/01 Javascript
nodejs连接mysql数据库简单封装示例-mysql模块
2017/04/10 NodeJs
在 Angular中 使用 Lodash 的方法
2018/02/11 Javascript
Vue 全家桶实现移动端酷狗音乐功能
2018/11/16 Javascript
javascript判断一个变量是数组还是对象
2019/04/10 Javascript
ES6 Iterator接口和for...of循环用法分析
2019/07/31 Javascript
跟老齐学Python之有点简约的元组
2014/09/24 Python
Python实现TCP/IP协议下的端口转发及重定向示例
2016/06/14 Python
详解如何用django实现redirect的几种方法总结
2018/11/22 Python
联想哥伦比亚网上商城:Lenovo Colombia
2017/01/10 全球购物
会计电算化专业毕业生求职信范文
2013/12/10 职场文书
个人工作表现评价材料
2014/09/21 职场文书
师德自我剖析材料范文
2014/10/06 职场文书
小升初自荐信范文
2015/03/05 职场文书
学生退学证明
2015/06/23 职场文书
学生会任命书范本
2015/09/21 职场文书
《金钱的魔力》教学反思
2016/02/20 职场文书