![](/img/trans.png)
[英]Error: No files matching the pattern "'./src/views/{tokens,atoms,molecules,organisms}/**/*.scss'" were found
[英]"No files matching the pattern "src" were found." when using "npx eslint src" or "npx eslint src/"
我刚刚用打字稿建立了一个 create-react-app 项目。 我已经用 npx eslint --init 添加了npx eslint --init
。 当我运行npx eslint src/
或npx eslint src
时出现错误:
Oops! Something went wrong! :(
ESLint: 8.18.0
No files matching the pattern "src" were found.
Please check for typing mistakes in the pattern.
但是,如果我使用这个命令: npx eslint src/*
那么它就可以工作。 这很好,但是我看到的一些指南和 stackoverflow 评论( 例如在这里)表明,对我不起作用的命令似乎对其他所有人都有效。 我究竟做错了什么?
eslint.js
module.exports = {
env: {
browser: true,
es2021: true,
jest: true,
},
extends: ["plugin:react/recommended", "standard"],
parser: "@typescript-eslint/parser",
parserOptions: {
ecmaFeatures: {
jsx: true,
},
ecmaVersion: "latest",
sourceType: "module",
},
plugins: ["react", "@typescript-eslint"],
rules: {
semi: "off",
quotes: "off",
"space-before-function-paren": "off",
},
ignorePatterns: ["**/*.css", "**/*.svg"],
};
package.json
:
"dependencies": {
"@testing-library/jest-dom": "^5.14.1",
"@testing-library/react": "^13.0.0",
"@testing-library/user-event": "^13.2.1",
"@types/jest": "^27.0.1",
"@types/node": "^16.7.13",
"@types/react": "^18.0.0",
"@types/react-dom": "^18.0.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-scripts": "5.0.1",
"typescript": "^4.4.2",
"web-vitals": "^2.1.0"
},
"devDependencies": {
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/parser": "^5.30.0",
"eslint": "^8.0.1",
"eslint-config-standard": "^17.0.0",
"eslint-plugin-import": "^2.25.2",
"eslint-plugin-n": "^15.0.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-react": "^7.30.1"
},
好吧,我留下的评论不正确。 这个问题让我了解了 ESLint,它是如何工作的,以及npm
/ npx
命令有何不同。
$(pwd)
来引用当前工作目录,因为它不是路径的伪表示,而是一个这样包装的命令,它可以通过以下方式解释和运行BASH外壳。” 在评论中,我写了 eslint 解析路径,以及它无法推断CLI传递的参数src
的含义,如以下代码片段所示:
/* COMMAND-1 */
$ eslint src
回想起来,这是一个非常愚蠢的评论,我不应该说。 它不聪明的原因是,当您使用以下内容时,解析路径的方式会完全改变:
/* COMMAND-2 */
$ npx eslint src
并排查看这两个命令是有帮助的,因为它允许我们进行并排比较,但是,由于这两个命令有很大的不同,因此实际上没有太多可比较的地方。
因此,第一个命令COMMAND-1
将 src 解析为路径,但是COMMAND-2
执行npx
内部命令,因此 npx 中的“X”与执行...相同
npm exec
或npm x
换句话说,如下; npx eslint src
也可以使用npm x eslint src
或npm exec eslint src
。
因此,如上所述,**参数src
不是系统file-path
,而是一个内部 ESLint 命令,它提供了一个可爱的小 CLI 打印输出您的错误。 它实际上很酷
我遇到的问题,看起来和你遇到的问题一样。
所以 NPM 带有嵌入其中的 NPX 命令,从技术上讲, npx
是npm
命令,只是作为npm x
或npm exec
; 从您的文件系统的角度来看,(换句话说,从/usr/bin/...
的上下文中查看命令)它们是两个不同的命令。
所以我对 ubuntu 了解很多,因为它是我 7 年的操作系统。 大约一年前,我切换到Fedora 36: Workstation
,很高兴我做到了。 由于与安装 Node.js 和 NPM 相关的问题,我进行了更改。 Ubuntu让它变得困难。 我首先使用 Linux 的原因是因为软件在适合运行软件的环境中运行,而不适合保护与软件相关的专有许可证。 总之,长话短说……升级NPX最好的方法(就是升级NPM,也就是升级Node.js),就是安装最新版本的Node.js,进入目录,并在/usr/bin
目录中为npm
、 node
、 npx 创建符号链接,然后将npx
(全局)升级到v8.18.0
版本。 您可能还需要为 ESLint 创建符号链接。
最后一点,只是为了指出一些事情。 你注意到你的 ESLint 版本你的package.json
文件是v8.18.0
吗? 你得到的错误版本是v8.1.0
吗?
那是因为您的本地和全球 eslint 安装是不同版本的 eslint。 您应该尝试始终使所有内容保持相同的版本。
现在您的系统正在尝试执行npx eslint src
,就好像src
是一条路径一样,但是一切都已更新,您应该拥有所需的软件,以便 eslint 和 npm 知道它是您尝试执行的 ESLint 命令,而不是路径.
我认为你应该在 tsconfig.ts 文件中有这个属性:
"baseUrl": "."
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.