vue种env配置以及在路由中的简单使用

news/2024/11/28 15:40:04/

env是什么?

.env文件是vue运行项目时的环境配置文件,它可以存储不同环境下的变量。.env文件与src目录并列,

.env:全局默认配置文件,无论什么环境都会加载合并。

.env.development:开发环境的配置文件

.env.production:生产环境的配置文件

在项目启动的时候会执行,当然了,根据实际需要可以自行创建,脚手架不会事先提供的。

注意:属性名必须以 VUE_APP_ 开头,如:VUE_APP_XXX

vue 会根据启动命令自动加载相对应的环境配置文件,

执行npm run serve命令,会自动加载.env.development文件

开发环境加载 .env 和 .env.development 。

生成环境加载 .env 和 .env.production 。

运行npm run serve的时候主要还是看package.json中 server属性的--mode后面跟的是啥。如果是development,就会加载.env.development文件。

 "serve": "vue-cli-service serve --mode development",

关于是否要写上 NODE_ENV 变量?有些地方说要加上,实际则没有必要。在项目启动的时候,如果文件内部不包含 NODE_ENV 变量,它的值将取决于模式,例如,在 production 模式下被设置为 "production",在 test 模式下被设置为 "test",默认则是 "development"。

环境配置文件 全局配置文件 冲突的时候,环境配置文件优先级权重更高。

在其它文件中可以使用 process.env.xxx 来访问属性。

axios中的使用

实际情况中,生产环境和你开发环境使用的地址是不一样的,如果更换或者打包都需要修改很多变量,如果不进行变量的处理,那么修改数据的时候极易发生错误。排查错误又是个更麻烦的事情。这里我直接上我最近弄的一个简单的一个例子,当然了地址啥的我要马赛克一下。知道个大概你就能弄个完整全面的。

//axios.js文件
const request = axios.create({baseURL: process.env.VUE_APP_API_PROJECT_MAIN_NAME,// baseURL: 'http://192.168.31.214:30501',//聂罗刚本地timeout:30000,// headers: {//     'Content-type': 'application/x-www-form-urlencoded;charset=UTF-8'// }
})
request.interceptors.request.use(config => {//这里我看别人用的不是config,也是用的request,属实不建议这么来。if (process.env.NODE_ENV === 'production'){//这里的$project我在main入口文件将public文件下的设置的全局变量挂到实例上面去了config.baseURL = Vue.prototype.$project.mainBaseUrl + Vue.prototype.$project.mainProjectName} console.log('config.baseUrl', config)if (getLocalStorage('FileManager')) {   let data = getLocalStorage('FileManager')config.headers['token'] = data.tokenconfig.headers['clientType'] = 0config.headers['loginType'] = 0}// config.data = "data=" + JSON.stringify(config.data)return config
})request.interceptors.response.use(res=>{// Toast.clear();return res
},
(err)=>{console.log('err :>> ', err);
}
)
//public文件夹下面的js文件,这里放置了线上的地址
window.PARTY_CONFIG_URL={mainBaseUrl:"XXXXXXXXXXXXXXXXXXXX:8101",// file:"http://223.247.176.85:18080/file",mainProjectName:"/XXXXXXXX",// loginProjectName:"/sso",// isTest:true,// sourceToAnother:["AQYX"]
}
//vue.config.jsdevServer: {proxy: {'^/archivesManage-service':{target: process.env.VUE_APP_API_BASE_URL,changeOrigin: true,pathRewrite: {'^/archivesManage-service': '/archivesManage-service'}},'^/archives': {target: process.env.VUE_APP_API_BASE_URL_ONLINE,changeOrigin: true,pathRewrite: {'^/archives': '/archives'}}},},
//.env.development
VUE_APP_API_BASE_URL=http:XXXXXXXXXXXXXXx
VUE_APP_API_BASE_URL_ONLINE=http:XXXXXXXXXXXXXXXxxx
VUE_APP_API_PROJECT_MAIN_NAME=/XXXXXXXXXXXXXXX
VUE_APP_API_PROJECT_MAIN_NAME_ONLINE=/XXXXXXXXXXx
//request.js
export function sendHomeList(data){ // 文件派发return request({url: '/page/sendFiles',method: 'post',data: data,});
}


http://www.ppmy.cn/news/30417.html

相关文章

八股文(四)

目录 一、 Vue2的双向数据绑定原理 二、 vue2数据绑定缺点是什么?vue3是怎么解决的? (1)因为vue2.0 object.defineProperty只能劫持对象属性 (2)Proxy是直接代理对象 (3)proxy不…

基于Python的selenium

一、安装 1.1安装Python,安装Python时需要勾选增加环境变量 如果之前已经安装过Python,需要将Python相关文件以及环境变量删除 1.2安装成功:在命令行界面下输入Python,最终展示>>>即可成功 2.1安装pycharm,直接自定义安装…

【Vue】vue中的mixin混入

Vue中的mixin混入 文章目录Vue中的mixin混入简介功能mixin存在的问题混入特性总结部分特性详解定义混入使用混入两种方法组件和混入对象含有同名选项时,这些选项将以恰当的方式进行“合并”,在发生冲突时以组件优先。同名生命周期钩子将合并为一个数组&a…

世界那么大,你哪都别去了,来我带你了解CSS3 (二)

文章目录‍❤️‍🔥CSS文档流‍❤️‍🔥CSS浮动‍❤️‍🔥CSS定位‍❤️‍🔥CSS媒体查询‍❤️‍🔥CSS文档流 文档流是文档中可显示对象在排列时所占用的位置/空间。 例如:块元素自上而下摆放,内…

K_A16_001 基于STM32等单片机驱动HX711称重模块 串口与OLED0.96双显示

K_A16_001 基于STM32等单片机驱动HX711称重模块 串口与OLED0.96双显示一、资源说明二、基本参数参数引脚说明三、驱动说明对应程序:四、部分代码说明1、接线引脚定义1.1、STC89C52RCHX711称重模块1.2、STM32F103C8T6HX711称重模块五、基础知识学习与相关资料下载六、视频效果展…

Java之可变参数

目录 一.可变参数的引入 1.问题引入 2.可变参数的使用 二.可变参数的注意点 1.可变参数只能定义一个 2.可变参数必须是函数参数的最后一个​编辑 一.可变参数的引入 1.问题引入 当我们需要定义一个方法sum,接受任意个整型变量,结果返回这些整型变量的和. 我们没有学习可…

【Python入门第二十五天】Python 作用域

变量仅在创建区域内可用。这称为作用域。 局部作用域 在函数内部创建的变量属于该函数的局部作用域,并且只能在该函数内部使用。 实例 在函数内部创建的变量在该函数内部可用: def myfunc():x 100print(x)myfunc()运行实例 100函数内部的函数 如…

k8s-Kubernetes集群部署

文章目录前言一、Kubernetes简介与架构1.Kubernetes简介2.kubernetes设计架构二、Kubernetes集群部署1.集群环境初始化2.所有节点安装kubeadm3.拉取集群所需镜像3.集群初始化4.安装flannel网络插件5.扩容节点6.设置kubectl命令补齐前言 一、Kubernetes简介与架构 1.Kubernetes…