前端开发环境变量

vue-cli

// vue-cli
ENV = 'development'

VUE_APP_BASE_API = '/api'

# 环境变量必须 VUE_APP_ 开头
VUE_APP_LAYOUT_HOUR = '10'


#//backend用  后端接口
VUE_APP_SERVERURL= http://192.168.11.112:5000 

#casdoor验证接口  config.serverUrl  main.js
VUE_APP_CASDOOR_SERVERURL= http://192.168.11.112:8000   
//vite
import.meta.env.xxx

### 前端项目中配置环境变量的方法及最佳实践 #### 方法概述 在现代前端开发框架中,如 Next.js 和 Nuxt.js环境变量的管理是一个重要的部分。它们不仅用于区分不同的部署环境(如开发、测试和生产),还帮助保护敏感数据的安全性。 对于 **Next.js**,可以通过 `.env` 文件来定义环境变量,并利用内置机制加载这些变量[^1]。而对于 **Nuxt.js (尤其是 Nuxt 3)**,则建议使用 `runtimeConfig` 结合 `useRuntimeConfig` API 来实现更灵活的环境变量管理[^3]。 --- #### 配置方法 ##### 1. 使用 `.env` 文件 `.env` 文件是一种常见的存储环境变量的方式。开发者可以在项目的根目录创建多个 `.env` 文件,分别对应不同的环境: - `.env.development`: 存储开发环境中的变量。 - `.env.production`: 存储生产环境中的变量。 例如,在 Next.js 中,只需将变量前缀设置为 `NEXT_PUBLIC_` 即可让其在客户端可用: ```bash # .env.development NEXT_PUBLIC_API_URL=http://localhost:3000/api SECRET_KEY=dev-secret-key # .env.production NEXT_PUBLIC_API_URL=https://production.example.com/api SECRET_KEY=prod-secret-key ``` 需要注意的是,任何以 `NEXT_PUBLIC_` 开头的变量都会暴露给浏览器,因此不应在此类变量中存储敏感信息。 --- ##### 2. 利用框架特性 在 **Nuxt.js** 中,推荐的做法是通过 `nuxt.config.ts` 或 `nuxt.config.js` 定义 `runtimeConfig`,从而避免直接暴露 `.env` 变量的内容。以下是具体实现方式: ```javascript // nuxt.config.ts export default defineNuxtConfig({ runtimeConfig: { public: { apiBase: process.env.NUXT_PUBLIC_API_BASE || 'http://default-api-base', }, secretKey: process.env.SECRET_KEY, // 不会公开到客户端 } }) ``` 随后,可以借助 `useRuntimeConfig()` 在组件或插件中获取这些值: ```typescript const config = useRuntimeConfig(); console.log(config.public.apiBase); // 访问公共变量 console.log(process.env.SECRET_KEY); // 已弃用,改用 runtimeConfig ``` 这种方式的优势在于分离了公有和私有的环境变量,增强了安全性。 --- ##### 3. 编译时 vs 运行时 某些情况下,可能需要决定变量是在编译时还是运行时生效。例如,在 Vite 支持的项目中,`vite.define` 被用来注入静态常量,适用于那些不会改变的全局参数;而在动态场景下,则应优先考虑 `runtimeConfig`。 对比来看: - 如果变量仅需一次初始化且无需更改,可以选择 `vite.define`; - 对于需要跨平台共享或者频繁更新的数据,应该采用 `runtimeConfig` 并配合相应的钩子函数处理逻辑。 --- #### 最佳实践总结 1. 敏感信息绝不可泄露至客户端,务必将其限定在服务端范围之内。 2. 明确划分不同阶段所需的配置项,合理命名以便维护人员快速理解用途。 3. 尽量减少硬编码行为,提倡集中化管理和模块化的调用模式。 4. 测试过程中验证各环境下实际效果的一致性和预期功能表现。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值