[英]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.