css - 根据部署加载不同的 CSS

标签 css reactjs webpack sass web-deployment

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

More information about custom environment variables.

关于css - 根据部署加载不同的 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55362728/

相关文章:

javascript - 打印位于图像中的文本

javascript - 如何在 React Native 中使用 sectionList 显示数据?

node.js - ReactJS 中的路由

reactjs - fireEvent.change 不会切换复选框

javascript - 在 React 中循环一个文件夹中的所有图像的好方法是什么?

node.js - 此实验性语法需要启用解析器插件 : 'objectRestSpread'

typescript - 模块与命名空间:组织大型 typescript 项目的正确方法是什么?

javascript - D3 - 使笔画宽度与第二个数据集共变

html - Vuejs index.html <link> 标签不尊重相对路径

javascript - 使用angular js点击另一个div后Div移动