vue-cli配置环境变量

在Vue CLI项目中,环境变量的使用对于区分不同环境如开发、生产、测试至关重要。默认配置提供了NODE_ENV变量,但要自定义环境变量,可以在Windows环境下复制dev-server.js,并新增npm命令。例如,创建`devtest`命令并设置`TESTING=true`。修改`config/dev.env.js`和`config/prod.env.js`,添加环境变量,确保在相应的命令中可以访问到。通过这种方式,可以灵活管理不同环境的配置。

在实际项目开发中,经常会碰到需要环境变量的情景,在vue-cli的环境下,默认已经配置了一个NODE_ENV的环境变量,当npm run dev的时候这个是development, 当npm run build 的时候这个是production.用过vue-cli开发的通常对这个都不陌生,用这个最多的基本就是我们配置ajax请求的域名头了,

if (process.env.NODE_ENV === 'production') {
  axios.defaults.baseURL = 'http://customer.medsci.cn'
}

通常会有测试服务器和正式服务器环境之分,我们请求的域名也得区分,所以通过proces.env.NODE_ENV来区分环境变量,通过这个能够全局访问的参数,我们可以处理很多需要环境处理不同的操作.
上面的process.env.NODE_ENV是vue-cli默认配置的,有时候我们可能觉得光是只有一个开发环境和生产环境还不够,比如我们还想来一个测试坏境,这时候就需要自己定义了.以下以windows坏境为例,mac环境类似.
首先可以安装cross-env

npm install cross-env --save-dev

vue-cli的配置本质就是webpack的配置,当我们运行npm run dev 的时候,其实执行的是package.json
中的scripts 的dev中 ,即build/dev-server.js 这里面一系列的配置启动整个服务.

我们只想加一个环境变量,可以复制一份,在dev下加一个devtest命令:

"devtest": "cross-env TESTING=true  node build/dev-server.js",

这样我们就可以通过npm run devtest也能启动整个服务了,注意上面的命令,我们加了一个TESTING=true ,这个就是加入的环境变量,TESTING:true, 通过上面的devtest的配置,我们可以运行npm run devtest像nppm run dev那样运行起来整个程序,不过我们发现,此时在项目中我们获取不到process.env.TESTING这个变量,这是为什么呢,如果是直接用webpack是可以的,经过查看,是在vue-cli的一系列配置文件中,已经写死了这些,不过我们可以改动加上
在根目录 config下,有dev.env.js和prod.env.js,这两个文件就是关键了,我们在NODE_ENV下面加一行TESTING:process.env.TESTING

module.exports = {
  NODE_ENV: '"production"',
  TESTING: process.env.TESTING
}

这时我们就能全局访问process.env.TESTING变量了,当我们npm run dev的时候,这个是undefined,当npm run devtest的时候是true, 同理我们可以添加一个npm run test命令, 与npm run build命令对应,加入打包测试的环境变量.
vue-cli的配置本质还是webpack的配置, 普通的webpack配置也可以采用此方法.
我的个人博客原文https://blog.noob6.com/2018/07/08/vue-cli-node-env/

Vue CLI Service (VCS) 是 Vue.js 提供的一个脚手架工具,用于管理和构建 Vue 应用程序。它支持配置环境变量,特别是对于处理敏感信息如API密钥、数据库连接等,这些通常会被存储在 `.env` 文件中,以保持项目的安全性。 要在 VCS 中配置环境变量,你需要按照以下步骤操作: 1. **创建.env文件**: - 在项目根目录下,如果没有 `.env` 文件,可以手动创建一个新的文本文件,名为 `.env`,这是默认的环境变量文件。 - Windows用户可能需要将文件名改为 `.env.production` 或 `.env.development` 根据你的开发阶段选择合适的环境。 2. **添加环境变量**: - 使用标准的键值对格式编写,例如 `VUE_APP_API_KEY=your_api_key`。这里的 `VUE_APP_` 是一个约定前缀,方便识别哪些是应用相关的环境变量。 3. **启用环境变量**: - 打开 `vue.config.js` 文件(如果是 v4),或者在 `package.json` 的 scripts 对象内(如果是 v3)。在这里,你可以配置 VCS 来读取环境变量,如下所示: ```javascript // vue.config.js (v4) module.exports = { chainWebpack: config => { if (process.env.NODE_ENV === 'production') { config.resolve.symlinks(true).alias .set('@env', resolve('src/environments')) } }, }; // package.json (v3) "scripts": { "dev": "cross-env VUE_APP_API_KEY=<your_api_key> vue-cli-service serve", "build": "vue-cli-service build" } ``` 4. **引用环境变量**: - 在你的 Vue 组件、路由守卫或任何其他地方,你可以通过 `import()` 或 `process.env.VUE_APP_API_KEY` 访问这些环境变量
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值