【问题标题】:react exclude config files from build反应从构建中排除配置文件
【发布时间】:2022-02-09 16:41:10
【问题描述】:
在我的 React 应用程序中,我有 4 个单独的配置文件用于 4 个不同的环境来运行,测试单元测试,开发时使用开发,暂存环境(几乎与 prod)和 prod 用于面向实际客户的生产服务器。
这些配置文件的一项设置是 api 地址(127.0.0.1:7777 用于开发,api.staging-app.com 用于暂存,api.app.com 用于生产。
React 将使用与 REACT_APP_NODE_ENV 变量对应的配置文件。但我最近注意到,react 总是会捆绑任何配置文件以供爱管闲事的用户发现。
由于我想对登台服务器的位置保密(它仍然受到保护,即使它被发现了),我想从 webpack 构建中排除所有未使用的配置文件。有没有办法做到这一点?
【问题讨论】:
标签:
node.js
reactjs
webpack
【解决方案1】:
我不知道为什么会这样,但我是这样做的:
if(process.env.REACT_APP_NODE_ENV==="prod"){
var config=require("../config_prod.json")
}
if(process.env.REACT_APP_NODE_ENV==="dev"){
var config=require("../config_dev.json")
}
if(process.env.REACT_APP_NODE_ENV==="test"){
var config=require("../config_test.json")
}
else if(process.env.REACT_APP_NODE_ENV==="staging"){
var config=require("../config_staging.json")
}
export default config;
这样,任何未使用的配置文件都不会出现在生产包中。这仅适用于 process.env 在 if 子句中,例如 Math.random()