我们目前有两个元素共享后端和前端。元素 B 本质上只是元素 A 的一个子集。除了我们限制的一些功能外,它具有所有相同的功能。
在节点中使用 dotenv 模块,我能够限制某些路由的加载,因此后端全部由环境变量处理。但是,前端有不同的主配色方案(蓝色而不是紫色)并且 Logo 也不同。
我将如何根据环境/部署加载这两个差异?我尝试将所有常见的 css 放在一个文件中,然后从那里导入它们。我猜前端的主要区别是 projA 是一个不同于 projB 的主题。我可以在 react 渲染函数中使用条件隐藏/显示一些组件。
主.scss:
@import _projA.scss
@import _projB.scss
然后在我的 webpack 配置中,我通过 npm 构建脚本传递一个环境变量并排除 _projA 或 projB.scss。这仍然会加载两者,我猜是因为主 scss 文件同时导入了这两者。
编辑: https://medium.com/@trekinbami/using-environment-variables-in-react-6b0a99d83cf5
最佳答案
自定义环境变量
Note: this feature is available with react-scripts@0.2.3 and higher.
这些环境变量将在 process.env 文件中为您定义,并根据您的环境(npm start、npm run build、npm test)根据需要呈现它们。
只需要一个导入,React 将为您处理其余的,创建您的环境。文件并像这样使用它:
@import REACT_APP_STYLE
.env.development.local
文件中用于 npm start
的自定义环境变量示例:
REACT_APP_STYLES = _projA.scss
关于css - 根据部署加载不同的 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55362728/