根据部署加载不同的 CSS



我们目前有两个项目的共享后端和前端。项目 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

自定义环境变量

注意:此功能适用于 react-scripts@0.2.3 及更高版本。

这些环境变量将在 process.env 文件中为您定义,并且根据您的环境(npm start 、npm run build、npm test)将它们根据需要呈现。

只需要一个导入,React 将为您处理其余的工作,创建您的 env. 文件并像这样使用它:

@import REACT_APP_STYLE

.env.development.local文件中的自定义环境变量示例npm start

REACT_APP_STYLES = _projA.scss

有关自定义环境变量的详细信息。

最新更新