前端打包注入process.env

在前端开发过程中,有时候需要用到本地配置,比如一些api的key或者对于每个开发者私有的配置(开发者本地ip等)。这些配置信息不能直接放到git仓库中去,一方面是会暴露隐私信息,另一方面会干扰到其他开发的使用。

本文叙述了如何将本地配置文件注入到前端项目中去的方法和步骤:

首先需要使用dotenv第三方库使本地配置在node环境下可用,关于dotenv的使用可见我的另一篇文章(使用dotenv库的基本步骤 - 掘金 (juejin.cn))

然后就是如何让这些配置在浏览器中也生效,这里分两种情况讨论:

1. 不使用框架

如果前端项目是开发自己使用webpack搭建的,那么只需要在webpack中进行一些额外的配置就可以直接在浏览器环境中使用process这个对象了,具体来说就是使用名为webpack.DefinePlugin的插件,额外的配置代码如下:

js 复制代码
const webpack = require('webpack');

module.exports = {
  // ... 其他配置
  plugins: [
    // 定义环境变量
    new webpack.DefinePlugin({
      'process.env': JSON.stringify(process.env),
    }),
  ],
  // ... 其他配置
};

2. 使用前端框架

这里以RCA为例。RCA已经做了相关的处理,只需要保证将要注入到浏览器中的本地配置信息字段名以REACT_APP开头即可!

env 复制代码
REACT_APP_OPENAI_KEY=sk-7HFYCtmUItc9Y2MG8642E896C61a42Aa87D3Cc7a***********

在打包的时候CRA框架就会自动将代码中的process.env.REACT_APP_OPENAI_KEY替换成对应的值!也就是说在代码中可以直接使用process.env.REACT_APP_OPENAI_KEY取到对应的值。

!!注意这并不意味window.process.env.REACT_APP_OPENAI_KEY是存在的,这是打包的时候被替换了而已!!

相关推荐
To_OC6 小时前
写了三遍 Todo List,我终于搞懂了 React 父子组件到底怎么通信
前端·javascript·react.js
勇往直前plus7 小时前
Vue3(篇一) 核心概念——响应式模板语法与组件基础
前端·javascript·vue.js
咩咩啃树皮7 小时前
第43篇:Vue3计算属性(computed)完全精讲——缓存机制、依赖计算、业务最优解
前端·vue.js·缓存
用户938515635078 小时前
从零搭建 AI 日记助手:用 Milvus 向量数据库 + RAG 让机器读懂你的每一天
javascript·人工智能·全栈
徐小夕9 小时前
花了一周,3亿tokens,我开源了一款 Word 文档智能审查平台,文稿自动质检+可视化分析,告别低效人工审核
前端·算法·github
a11177610 小时前
坦克大战3D Three.js 3D (开源项目)
开发语言·javascript·3d
kyriewen10 小时前
别再乱用useEffect了——你写的10个里有8个不该存在
前端·javascript·react.js
Ivanqhz11 小时前
Rust &‘static str浅析
java·前端·javascript·rust
IT_陈寒11 小时前
SpringBoot这个分页坑,我踩了三天才爬出来
前端·人工智能·后端
颜酱11 小时前
05 | 召回前置准备:根据业务数据库生成各数据库(读取配置阶段)
前端·人工智能·后端