如何在 ESLint 中抑制“没有符合模式的文件”消息?

92
我在CI设置中有一个测试,它会对所有JS文件运行eslint。如果没有JS文件存在,目前会抛出一个错误。我希望当没有JS文件存在时,它能够成功。这个可能吗?

在我的CI设置中,有一个测试针对所有JS文件运行eslint,如果不存在JS文件,则目前会抛出错误。我希望在没有JS文件存在时,测试可以通过。这种情况是否可行?

$ eslint "./src/assets/scripts/**/*.js"

Oops! Something went wrong! :(

ESLint: 5.7.0.
No files matching the pattern "./src/assets/scripts/**/*.js" were found.
Please check for typing mistakes in the pattern.

ERROR: Job failed: exit code 1

1
如果存在这些文件,只调用eslint怎么样? - user2864740
我想我可以为此编写一些内容,我之前没有考虑过这种方式。 - JacobTheDev
ESLint版本为6.8.0,但错误仍然存在。 - Haisum Usman
6个回答

148

对我有效的方法是将单引号更改为转义的双引号

因此,从:

"lint": "eslint '**/*.{ts,tsx}'"
收件人:
"lint": "eslint \"**/*.{ts,tsx}\""

原因是因为它取决于您使用的控制台 - 可能是操作系统(这就是为什么它对您有效,而对其他人无效或反之亦然)。

来源:https://dev.to/gruckion/comment/b65c


3
对我有用!谢谢。@Sebastian Voráč - Vikram K
3
这对我在Windows系统中起作用。 - Blessing
3
这很酷,但与问题无关。 - Michael Pearson
2
@MichaelPearson 这个实际上修复了问题描述中的错误(不像被接受的答案那样隐藏错误)。 - Sebastian Voráč
1
非常感谢您提供的这个lint脚本示例!在我的情况下,文档中的--ext标志对我没有起作用...所以我不能使用eslint ./** .js,.ts,.jsx,.tsx,它以某种方式工作不正确 :) - Elisey
虽然这个答案解决了可能导致相同错误消息的shell差异,但它并不是“如果没有JS文件存在,则当前会抛出错误。我希望在没有JS文件存在时它能够成功。”的解决方案,这正是OP所询问的。 - Micke

79

2
这只是在出现不匹配模式时隐藏错误。我在下面友好地提供我的解决方案建议。 - Sebastian Voráč

6

我找到了关于ESLint的这个已关闭的问题。听起来这是一个常见的问题,但目前没有很好的解决方案,除了像@user2864740建议的那样,在尝试进行代码检查之前手动检查文件是否存在。


5

我遇到了同样的错误

没有找到与模式".ts,"匹配的文件。

我只是在配置文件中删除了.js, .ts, .tsx之间的空格,问题得以解决。

来自:

"lint": "eslint --ignore-path .gitignore --ext .js, .ts, .tsx .",

To

 "lint": "eslint --ignore-path .gitignore --ext .js,.ts,.tsx .",

5
在我的情况下,我需要从原来的进行更改:
"lint": "eslint \"**/*.{ts, tsx}\""

为了

"lint": "eslint \"**/*.{ts,tsx}\""

这是一个字面上的空格,位于tstsx / jsjsx之间。


谢谢!对我来说也是逗号后面的空格问题! - PowPowPow
1
这只是我的答案副本。 - Randall
1
这只是我的答案副本。 - undefined

0
步骤1:将以下命令添加到您的package.json文件中 "scripts": { "eslint": "eslint" }
步骤2:运行以下命令清除缓存 npm run eslint -- --clearCache

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接