我们目前有两个项目的共享后端和前端。项目B本质上只是项目A的一个子集。它具有所有相同的功能,除了我们限制的一些功能。
使用节点中的dotenv模块,我可以限制某些路由的加载,因此后端全部由环境变量处理。但是,前端具有不同的原色方案(蓝色而不是紫色),徽标也不同。
我将如何根据环境/部署来加载这两个差异?我尝试将所有常见的CSS放在一个文件中,然后从其中导入。我猜想前端的主要区别是projA和projB是不同的主题。我可以使用有条件的反应渲染功能隐藏/显示的某些组件。
main.scss:
@import _projA.scss
@import _projB.scss
然后在我的webpack配置中,通过npm构建脚本传递环境变量,并排除_projA或projB.scss。这仍然会加载两者,我猜是因为主scss文件同时导入了这两者。
编辑: https://medium.com/@trekinbami/using-environment-variables-in-react-6b0a99d83cf5
答案 0 :(得分:1)
自定义环境变量
注意:此功能在react-scripts@0.2.3及更高版本中可用。
这些环境变量将在process.env文件中为您定义,并根据您的环境(npm启动,npm运行构建,npm测试)将根据需要呈现。
只需要一次导入,React将为您处理其余的操作,创建您的环境。文件并像这样使用它:
@import REACT_APP_STYLE
.env.development.local
文件中npm start
的自定义环境变量示例:
REACT_APP_STYLES = _projA.scss