NuxtJS中如何禁用ESLint unicorn/number-literal-case规则
问题场景
使用集成了内置Prettier与ESLint的NuxtJS CLI开发时,代码中写入十六进制数字0xffffff会触发ESLint抛出如下错误:
Invalid number literal casing unicorn/number-literal-case
之前尝试过的操作均未完全解决问题:
- 在
.eslintrc.js中添加配置'prefer-numeric-literals': 'off',仅解决了部分报错,ESLint Unicorn插件的校验依然触发错误 - 尝试卸载Unicorn对应依赖,报错没有消除
- 手动将十六进制数字写为大写格式,Prettier会在保存时自动将其转换回小写,依然触发报错
- 当前临时绕过方案是在对应代码块前后添加
/* eslint-disable */和/* eslint-enable */跳过校验,但使用非常不便
当前环境版本:
- Prettier:2.4.0
- ESLint:7.3.2
解决方案
报错根源是触发了eslint-plugin-unicorn的number-literal-case规则,之前配置关闭的prefer-numeric-literals是ESLint核心规则,和该报错无关,因此没有生效。
方案1:直接关闭对应规则(适配快速推进开发的需求)
打开项目的ESLint配置文件(通常为.eslintrc.js或.eslintrc.json),在rules配置项中添加如下规则:
rules: { // 保留原有其他规则配置 'unicorn/number-literal-case': 'off' }
配置完成后重启编辑器的ESLint服务(或直接重载编辑器窗口),对应报错会直接消除,不需要逐行加注释跳过校验。
方案2:统一Prettier与ESLint规则(无需禁用校验规则)
如果不想关闭该条校验规则,可以修改Prettier配置,让Prettier的格式化结果和ESLint规则要求一致,避免格式化后触发报错:
打开项目根目录的Prettier配置文件(通常为.prettierrc或prettier.config.js),添加如下配置:
{ // 保留原有其他Prettier配置 "hexadecimalNumberCase": "upper" }
该配置会让Prettier在保存格式化时,自动将十六进制数字转为大写格式,刚好匹配Unicorn规则默认要求的大写规范,不会再出现格式化后触发ESLint报错的问题。如果当前Prettier版本不支持该配置项,直接使用方案1即可,不会影响项目正常开发。
内容的提问来源于stack exchange,提问作者MAZ
相关产品推荐
相关产品推荐

