webpack-4 - 带有 IE 11 后备的 css 模块、postcss + webpack
问题描述
我的问题是更多的方法。我有一个只使用 css 的项目,带有 css 自定义属性。vars
例如。这个项目是反应,启用了 css 模块。具有如下结构:
component
-- folder1
---- folder1.css
-- folder2
----folder2.css
node_modules
-- module1
---- module1.css
在本地项目中,我有 webpack,带有 postcss 加载器和以下插件:
{
loader: "postcss-loader",
options: {
ident: "postcss",
plugins: loader => [
require("postcss-import")({ root: loader.resourcePath, skipDuplicates: true }),
require("postcss-preset-env")()
]
}
}
在本地component
和node_modules
*.css
文件中都有:root
定义。为哪些变量设置。
例如,我有一个颜色文件,其中定义了所有颜色变量。
我的目标是在开发和生产中,我都var()
输出了 IE 11 的值。所以让我们说颜色是var(--color-black)
它会输出color: #000
& color: var(--color-black)
。
发生的事情是我必须在每个模块中导入后备才能出现。这仅适用于组件下的本地 css 文件,而不适用于 node_modules。:root
这也多次应用相同的值。
我正在寻找的是其他人可能已经使用最少数量的 postcss 配置来实现在 IE 11+ 中工作但仍然只允许编写未来 css 的东西。
任何帮助,将不胜感激。
解决方案
您可以添加browsers: 'last 2 versions'
到您的 postcss 配置文件以获得旧浏览器的回退,这是我在真实项目中的配置示例。
postcss.config.js
module.exports = {
plugins: {
'postcss-import': {},
'postcss-preset-env': {
browsers: 'last 2 versions',
features: {
'nesting-rules': true,
'custom-media-queries': true,
'color-mod-function': true
}
},
},
}
推荐阅读
- mysql - 加入 WHERE 并添加计算列
- abap - 未找到存档计费参数的值
- java - 为拍摄的图像添加新名称的方法
- authentication - 为了构建公共 sdk,我需要选择哪个 oauth 或 openid-connect?
- visual-studio - 有没有 VisualSVN 或 AnkhSVN 的免费替代品?
- sass - 扩展 bootstrap 4 边距大小
- java - IntelliJ IDEA 警告“不必要的 'Arrays.asList' 调用”
- java - 无法获取总金额
- python - 按周和月聚合 Pandas 数据框
- apache-kafka - 如何将两个订购者添加到同一个频道?