前端切换不同环境之process

Vite项目控制不同环境

Process

前端项目在开发中往往分为多个环境,例如dev、test、prod等。
我们经常会遇到测试环境和生产环境的后端请求地址不一样,每次手动修改太麻烦。
于是process 就诞生了,当前前端往往可以使用process区分打包指向的后端地址从而达到不同环境访问不同地址的目的。

Cross-env

cross-env可以解决不同环境设置不同环境变量的问题。根据配置的参数访问不同的配置文件以达到切换环境的效果。

案例

多说无益,接下来我们结合案例分析一下
首先你要安装corss-env和process这两个依赖,过于简单直接省略。
其次在本地代码根目录下创建.env开头文件
如.env.production、.env.development
在这里插入图片描述
文件内代码如下

VITE_NODE_ENV = 'dev' 
VITE_API_URL = 'http://DEV' 

先别管 先这样写。

接下来在pack.json文件内的命令内添加如下命令

"dev": "cross-env VITE_NODE_ENV=dev vite --mode production",

cross-env代表当前项目的环境变量是什么 ,可以设置为dev 、prod
–mode 则代表取哪个文件的配置 #划重点# mode后跟随的是文件名称,如下图的development指向的就是.env.development文件。

如下图

在这里插入图片描述
聪明的牛马已经发现问题了,为什么dev和build写的不一样,少了VITE_NODE_ENV这一段。
其实这个可以写在.env文件内,也可以写在命令内,命令行优先级更高。
那么配置写好了 代码里面怎么使用呢。
注意这里面有个大坑,使用Vite和Webpack构建时有细微的差别

Vite构建时 定义.env文件 使用VITE_开头定义变量

VITE_NODE_ENV = 'dev' 
VITE_API_URL = 'http://DEV' 

Vite项目获取值

 console.log('测试',import.meta.env.VITE_NODE_ENV,import.meta.env.VITE_API_URL)
 // 输出 测试,dev,http://DEV

Webpack构建时 定义.env文件 使用VUE_APP_开头定义变量

VUE_APP_NODE_ENV = 'dev' 
VUE_APP_API_URL = 'http://DEV' 

使用webpack构建项目则用一下方法获取值

 console.log(process.env.VUE_APP_NODE_ENV,process.env.VUE_APP_API_URL)
 // 输出 dev,http://DEV 
### 不同环境下的 Vue 前端项目打包配置 为了实现 Vue 项目在不同环境下的打包需求,可以通过设置多环境变量并调整相应的配置文件来完成。以下是详细的说明: #### 1. 安装依赖工具 通过安装 `cross-env` 工具,可以方便地跨平台设置环境变量。执行以下命令进行安装: ```bash npm install cross-env --save-dev ``` 此工具用于解决 Windows 和 Unix 平台间环境变量设置差异的问题[^1]。 #### 2. 修改 `package.json` 中的脚本 在 `package.json` 的 `scripts` 字段中定义不同的打包命令,分别对应开发、测试和生产环境。例如: ```json "scripts": { "build:prod": "cross-env NODE_ENV=production ENV_CONFIG=prod npm run build", "build:test": "cross-env NODE_ENV=test ENV_CONFIG=test npm run build" } ``` 这里设置了两个环境变量:`NODE_ENV` 表示通用的 Node.js 环境模式;`ENV_CONFIG` 则用来区分具体的环境配置名称。 #### 3. 创建环境配置文件 在项目的根目录下新建一个名为 `config` 的文件夹,在其中创建多个 `.js` 文件作为各个环境的具体参数设定。比如 `prod.env.js` 可能包含如下内容: ```javascript module.exports = { API_BASE_URL: '/api', ROUTER_MODE: 'history' }; ``` 这些值会被注入到应用内部供全局访问使用。 #### 4. 更新 Webpack 或 Vite 配置 对于基于 Webpack 的旧版 Vue CLI 构建体系来说,需要编辑位于 `build/webpack.prod.conf.js` 这样的地方加载上述提到过的 env 设置。而对于较新的采用 Vite 方式的构建,则是在其主入口处读取 process.env 对象获取相关信息[^4]。 #### 5. 动态切换静态资源路径 当处于不同的部署场景时(如本地调试 vs 实际线上服务器),可能还需要改变公共资源的基础 URL 地址。这通常可以在 HTML 插件或者单独的一个 JSON 数据源里面指定出来,并且让整个程序动态解析它。 #### 示例代码片段 下面给出一段简单的条件分支逻辑演示如何依据当前所处阶段做出相应动作: ```javascript if (process.env.NODE_ENV === 'production') { console.log('Running on Production Mode'); } else if (process.env.NODE_ENV === 'test') { console.log('Testing Environment Detected'); } else { console.log('Development Setup Active'); } ``` 以上方法能够帮助开发者轻松管理复杂的多套运行状况组合情况[^2]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值