CSS校验时Stylelint报declaration-property-value-blacklist未知规则错误
问题原因
所有CSS文件都在1:1位置报Unknown rule declaration-property-value-blacklist错误,和CSS文件本身的代码无关,是Stylelint启动加载配置时就识别到了无效规则,才会统一在每个文件的起始位置抛出错误。
常见触发原因有两类:
- Stylelint版本不兼容:从14.0.0版本开始,Stylelint正式移除了所有名称带
blacklist/whitelist的内置规则,统一替换为disallowed-list/allowed-list命名,declaration-property-value-blacklist是旧版本的规则名,新版本里已经不存在,直接写旧名就会报未知规则错误 - 第三方插件规则加载失败:如果这条规则不是Stylelint内置规则,而是来自第三方插件,说明对应插件未正确安装、未在配置的
plugins字段中声明,或是插件升级后删除/重命名了该规则
排查解决步骤
- 先确认本地Stylelint版本:在项目根目录执行
npx stylelint --version,如果返回版本号为14.0.0及以上,直接打开你的Stylelint配置文件(支持的格式包括.stylelintrc.js/.stylelintrc.json/package.json中的stylelint字段等),找到rules配置里的declaration-property-value-blacklist项,把规则名替换为declaration-property-value-disallowed-list即可,原有规则的配置值不需要改动,保存后重新执行校验就能消除该错误 - 如果你确认这条规则来自第三方插件:先检查
package.json的依赖项中是否安装了对应插件,未安装则重新安装对应版本;已安装的话核对配置里的plugins数组是否正确引入了该插件,再查阅插件对应版本的文档,确认规则是否存在更名、移除的情况 - 如果是旧项目迁移暂时不想批量修改规则名,可以安装官方提供的
@stylelint/legacy-rules兼容包,按照包说明在配置中引入旧规则集即可临时兼容,但这只是过渡方案,长期维护还是建议统一更新为新版规则命名 - 配置修改完成后,可以执行
npx stylelint 任意测试CSS文件路径 --print-config,查看输出的配置中rules字段是否还存在无效规则,确认配置加载正常后再跑全量校验即可
内容的提问来源于stack exchange,提问作者benblustey
相关产品推荐
相关产品推荐

