网站首页 > 技术文章 正文
在Web前端工程化开发中,我们通常需要多个环境,至少需要开发和生产环境,也可能还需要不同的测试环境。那么,我是怎样配置多环境的呢?
通常,一些脚手架都有配置多环境的解决方案,比如在项目根目录创建多个.env文件。但我不喜欢在根目录创建很多.env文件,我觉得这样不够优雅,也不够灵活,并没有采用这种方案,而是使用了其它的解决方案。
我使用了一个第三方包,叫:env-cmd,它的用法非常简单。我们需要创建一个环境变量配置文件,扩展名可以是json或者js,文件名可以随便起,可以放到任何目录,使用时指定配置文件路径即可。
我比较推荐在项目根目录创建一个.env-cmdrc.js文件,因为这么做就不需要指定配置文件路径了,env-cmd默认查找的就是根目录的这个文件。扩展名也可以是json,但我推荐用js,为什么呢?因为js更加灵活。
首先,提醒大家一点,自定义的环境变量,命名一定要遵守脚手架的命名约定,比如:vue-cli要求必须以VUE_APP_开头。
如下代码是env-cmd的配置文件长相,导出的对象属性名就是env-cmd 环境名字,这是用js的方式。如果用json,就不需要导出了。
// .env-cmdrc.js
module.exports = {
development: {
API_BASE: '/api'
},
production: {
API_BASE: '/'
},
test: {
API_BASE: '/'
}
}
以下代码是我们其中一个项目的配置,大家看到js作为配置文件的优势了吧?
// .env-cmdrc.js
const envList = [
{
MODE: 'development',
API_BASE: '/api',
FILE_BASE: '/files'
},
{
MODE: 'production',
API_BASE: '/'
}
]
module.exports = envList.reduce((t, _) => {
return {
...t,
[_.MODE]: {
..._,
APP_NAME: _.APP_NAME || 'XXXX管理后台'
}
}
}, {})
那么,有了配置文件,我们该如何使用呢?只需在package.json中的开发和构建脚本之前增加env-cmd -e命令,用于指定环境,以下就是使用方法。
"scripts": {
"dev": "env-cmd -e development vite",
"dist": "vite build",
"build": "env-cmd -e production npm run dist"
}
如果你用的vite,或者其它无法自动注入环境变量的脚手架,就需要你手动将环境变量注入应用了,如下是vite的注入例子。大家能理解吧?
import { defineConfig } from 'vite'
export default defineConfig({
define: [
'MODE',
'API_BASE',
'APP_NAME',
'FILE_BASE'
].reduce((t, k) => ({ ...t, [`process.env.${k}`]: JSON.stringify(process.env[k]) }), {}),
})
下面是在我们的应用中使用的例子。
/** @type {string} 多环境配置中的环境名 */
export const ENV_NAME = process.env.MODE
/** @type {string} 接口baseUrl */
export const API_BASE = process.env.API_BASE
/** @type {string} 文件baseUrl */
export const FILE_BASE = process.env.FILE_BASE
/** @type {string} 应用名称 */
export const APP_NAME = process.env.APP_NAME
感谢阅读!是不是很简单?童鞋们都学废了吗?
- 上一篇: 原来前端部署这么简单 前端布局教程
- 下一篇: 一个快速搭建离线端Python环境的方法
猜你喜欢
- 2025-06-30 大疆上云API+流媒体服务器部署实现直播功能
- 2025-06-30 从0到1:项目从需求收集到落地全流程详情
- 2025-06-30 在 WSL 配置 Node.js 开发环境(windows配置nodejs)
- 2025-06-30 3小时搭建企业智能文档库!会博通部署超简攻略,管理者必看
- 2025-06-30 我把大模型锁进本地!本地AI编程开发环境搭建记录及避坑指南
- 2025-06-30 CodeSpirit 开发环境搭建指南(codecomposer studio)
- 2024-10-07 【前端进阶】Vite + Vue3:多页面应用的优雅构建与环境变量管理
- 2024-10-07 springboot+Neo4j:快速搭建自己的知识图谱可视化构建平台
- 2024-10-07 前端工程化体系设计与实践第5章第1节部署流程的设计原则
- 2024-10-07 自主搭建5个精品脚手架,玩转前端提效|无密分享
你 发表评论:
欢迎- 581℃几个Oracle空值处理函数 oracle处理null值的函数
- 576℃Oracle分析函数之Lag和Lead()使用
- 561℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 561℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 556℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 546℃【数据统计分析】详解Oracle分组函数之CUBE
- 535℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 530℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端懒加载 (49)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle的函数 (57)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)