簡體   English   中英

錯誤:無法加載在“.eslintrc”中聲明的解析器“babel-eslint”:在 create-react-app 中找不到模塊“babel-eslint”

[英]Error: Failed to load parser 'babel-eslint' declared in '.eslintrc': Cannot find module 'babel-eslint' in create-react-app

嘗試將eslint安裝到create-react-app中,但在運行 linter 時出現下一個錯誤:

在此處輸入圖像描述]

這是我的.eslintrc配置文件:

{
  "extends": ["airbnb", "prettier", "prettier/react"],
  "plugins": ["prettier"],
  "parser": "babel-eslint"
}

如果手動安裝babel-eslint ,它可能會基於項目和react-scripts依賴項之間的 package 沖突產生另一個錯誤: 在此處輸入圖像描述

要解決此問題,只需重用已安裝的react-scripts中的babel-eslint依賴項。 更新您的配置:

{
  "extends": ["airbnb", "prettier", "prettier/react"],
  "plugins": ["prettier"],
  "parser": "react-scripts/node_modules/babel-eslint"
}

你安裝了@babel/eslint-parser還是eslint-parser 在我的情況下,我不得不使用@babel/eslint-parser.eslintrc看起來像這樣:

"parser": "@babel/eslint-parser",

在我的情況下,解決方案只是運行npm install eslint --save-dev來更新 eslint 版本

yarn add eslint --save-dev為我解決了這個問題!

這里有點晚了,但我想我會分享讓我前進的原因......

我完全忽略了錯誤輸出,它告訴我.eslintrc文件(正在尋找所述包)的位置。 正如你所看到的......我有一些隨機的.eslintrc生活在我的項目之外,不知何故被撿起。

Failed to load parser 'babel-eslint' declared in '../.eslintrc': Cannot find module 'babel-eslint'

解決方案:

刪除這個包最終為我修復了錯誤。 不確定該文件是如何到達那里的,但在以前的項目中是錯誤的。

我懷疑這與全局安裝 babel-eslint 和 eslint 有關。

對我來說,這是因為確實沒有安裝該依賴項......我只是按照 GatsbyJS 的官方指南,它沒有安裝(不知道為什么該指南不完整)。

所以只需: yarn add -D babel-eslint

❯ yarn add -D babel-eslint 
yarn add v1.22.15
[1/4] Resolving packages...
warning babel-eslint@10.1.0: babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.

babel-eslint似乎已棄用,並且包現在作為babel下的 ES 模塊提供,因此請刪除babel-eslint並安裝@babel/eslint-parser

yarn remove babel-eslint
yarn add -D @babel/eslint-parser

在項目根文件夾 eslint 上運行eslint . 將顯示您可能需要安裝的丟失的軟件包,並且對我來說效果很好。

只需在 .eslintrc 中添加@babel/eslint-parser

至於我,我只需安裝這個 npm install eslint@4.x babel-eslint@8 - g 它對我有用

我還有另一個“這對我有用”的答案。 像其他人一樣,我的問題肯定與babel-eslint的棄用有關。 我的具體問題是eslint-config-react-app被標記為直接依賴項,我沒有在升級react-scripts的主要版本時升級它,不知何故這給我留下了一個eslint-config-react-app版本eslint-config-react-app期待babel-eslint ,但只安裝了@babel/eslint-parser 刪除eslint-config-react-app只刪除了舊的直接依賴項,但以不同的方式破壞了事情,重新安裝(不使其成為我的包的直接依賴項)讓事情再次為我工作。 我敢肯定有一種更清潔的方法可以做到這一點。

$npm ls eslint-config-react-app
client@0.1.1 /srv/
├── eslint-config-react-app@6.0.0
└─┬ react-scripts@5.0.1
  └── eslint-config-react-app@7.0.1

$ npm rm eslint-config-react-app

removed 1 package, and audited 2909 packages in 4s

$ npm ls eslint-config-react-app
client@0.1.1 /srv/
└─┬ react-scripts@5.0.1
  └── eslint-config-react-app@7.0.1
$ npm i --no-save eslint-config-react-app

added 1 package, removed 1 package, and audited 2909 packages in 6s

$ npm ls eslint-config-react-app
client@0.1.1 /srv/
└─┬ react-scripts@5.0.1
  └── eslint-config-react-app@7.0.1

這就像魅力

npm 更新 eslint

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM