关于postcss脚本中--replace参数通配符排除规则的疑问
问题解答
你的初步理解完全正确,以下是规则的详细说明:
1. 整体命令作用
你使用的是postcss的npm脚本,完整命令:
"css-postcss": "postcss --config src/build/postcss.config.js --replace \"css/*.css\" \"!css/*.rtl*.css\" \"!css/*.min.css\""
各参数含义:
--config src/build/postcss.config.js:指定postcss加载的配置文件路径--replace:postcss内置参数,处理完成后直接覆盖写入原文件,无需额外指定输出路径- 后续字符串都是glob模式的文件匹配规则,用来确定哪些文件需要被处理
2. !符号的作用
你对!的理解完全正确,这是glob模式的标准语法:
- 前缀带
!的规则属于排除规则,会从之前已经匹配到的文件集合里,移除符合该规则的文件 - 规则执行是按顺序生效的:先通过
css/*.css匹配到css目录下所有.css文件,再依次排除掉符合*.rtl*.css和*.min.css规则的文件
3. 匹配结果最终生效范围
最终会被postcss处理的文件是:css目录下,文件名不包含.rtl、且后缀不是.min.css的所有.css文件。这种写法是前端工程中的常用实践,避免重复处理已经专门适配RTL布局的样式、以及已经压缩完成的产物文件。
内容的提问来源于stack exchange,提问作者cdt
相关产品推荐
相关产品推荐

