javascript - 使用 ESLint `indent` 规则忽略模板文字中的缩进
问题描述
用于缩进的 ESLint 规则允许您在确定规则是否应应用于该节点时指定忽略哪些节点,使用该ignoredNodes
选项。
我有以下代码要使用此规则忽略:
const a = b
? `c${
d
}`
: e
具体来说,带有的行d
和后续行被报告为比应有的多两个空格。我想忽略规则中的那些行,但我不知道应该应用的节点。
节点类型在此 repo中指定。我知道这个代码中使用的三元表达式是一个ConditionalExpression
节点,它似乎存在一个模板文字节点,但我无法让它工作。
我知道我可以使用eslint-disable-next-line
,eslint-disable
等,但我不想使用这些,因为每次出现这种情况时我都必须使用它们。
解决方案
通过简单地查看ast 树${foo}
,我确认它确实是TemplateLiteral
节点。但是我碰巧也知道那里的解决方案:您还需要选择它的孩子。这可以通过TemplateLiteral > *
. 您的解决方案不起作用的原因是因为ESLint
将免除TemplateLiteral
缩进规则,但只有小部分${
和}
部分,而不是内容。
这可以像这样进入您的 ESLintrc 文件:
"indent": ["error", "tab", { "ignoredNodes": ["TemplateLiteral > *"] }]
很抱歉没有其他人能够更早地回答您的问题。
推荐阅读
- swift - 时间用完时如何自动重新启动计时器?
- javascript - FabricJS ClipPath 无法在 toDataUrl 上使用乘数正确缩放
- python - 使用 Python 将 JSON 数据插入 Oracle
- laravel - 尝试使用 azure 管道设置 npm 生产构建
- spring-boot - Spring Boot 启动失败——ConfigurationProperties 抛出 UnboundConfigurationPropertiesException
- docker - 没有这样的文件或目录:通过章鱼部署运行hashicorp packer docker镜像时
- json - Flutter:如何优先显示来自 Asset 的图像,如果找不到,则显示来自 URL 的图像?
- android - 我如何在 android 开发中使用 OpenCv/机器学习概念,我想在 android 应用程序中使用一些基于机器学习的想法
- mysql - 高难度SQL语句(两次分组及区别)
- docker - standard_init_linux.go:211: exec 用户进程在 Alpine 上导致“没有这样的文件或目录”