TypeError: this.libOptions.parse is not a function

回答 6 浏览 5.2万 2022-08-27

我在 WebStorm 2022.2.1 Build #WS-222.3739.57 上开始使用 Next.js。我创建了一个新的 Next.js 项目,启用了 TypeScript,仅此而已。

该错误显示在下面。

TypeError: this.libOptions.parse is not a function

TypeError: this.libOptions.parse is not a function
    at ESLint8Plugin.<anonymous> (C:\Program Files\JetBrains\WebStorm 2022.1.2\plugins\JavaScriptLanguage\languageService\eslint\bin\eslint8-plugin.js:139:64)
    at step (C:\Program Files\JetBrains\WebStorm 2022.1.2\plugins\JavaScriptLanguage\languageService\eslint\bin\eslint8-plugin.js:44:23)
    at Object.next (C:\Program Files\JetBrains\WebStorm 2022.1.2\plugins\JavaScriptLanguage\languageService\eslint\bin\eslint8-plugin.js:25:53)
    at C:\Program Files\JetBrains\WebStorm 2022.1.2\plugins\JavaScriptLanguage\languageService\eslint\bin\eslint8-plugin.js:19:71
    at new Promise (<anonymous>)
    at __awaiter (C:\Program Files\JetBrains\WebStorm 2022.1.2\plugins\JavaScriptLanguage\languageService\eslint\bin\eslint8-plugin.js:15:12)
    at ESLint8Plugin.invokeESLint (C:\Program Files\JetBrains\WebStorm 2022.1.2\plugins\JavaScriptLanguage\languageService\eslint\bin\eslint8-plugin.js:133:16)
    at ESLint8Plugin.<anonymous> (C:\Program Files\JetBrains\WebStorm 2022.1.2\plugins\JavaScriptLanguage\languageService\eslint\bin\eslint8-plugin.js:120:44)
    at step (C:\Program Files\JetBrains\WebStorm 2022.1.2\plugins\JavaScriptLanguage\languageService\eslint\bin\eslint8-plugin.js:44:23)
    at Object.next (C:\Program Files\JetBrains\WebStorm 2022.1.2\plugins\JavaScriptLanguage\languageService\eslint\bin\eslint8-plugin.js:25:53)
Process finished with exit code -1

我的Node.js版本是v16.15.1,而ESLint版本是8.23.0。

这就是我的devDependencies的模样。

  "devDependencies": {
    "@types/node": "18.7.13",
    "@types/react": "18.0.17",
    "@types/react-dom": "18.0.6",
    "eslint": "8.23.0",
    "eslint-config-next": "12.2.5",
    "prisma": "^4.2.1",
    "typescript": "4.8.2"
  }

我的.eslintrc.json号文件。

{
  "extends": "next/core-web-vitals"
}
Thebluedragon 提问于2022-08-27
6 个回答
#1楼 已采纳
得票数 259

该问题在WEB-57089中被跟踪,并且在2022.2.2preview build中被修复。

这个问题是由ESLint 8.23中引入的变化引起的(违规的上游提交:在GitHub上查看)。将ESLint降级到8.22.x或更早的版本(用npm install eslint@8.22.0 --save-exact)应该有帮助。

lena 提问于2022-08-27
Peter Mortensen 修改于2022-09-25
苹果硅的链接中的预览版到现在为止还没有工作。修复:在URL中添加-cdndownload-cdn.jetbrains.com/webstorm/…Avner Israel 2022-09-08
这不仅仅发生在ESLint 8.23版本中,我在ESlint 8.19版本中也看到了这一现象。Michael Trouw 2022-09-15
2022.2.2现在已经作为稳定版发布了。fgblomqvist 2022-09-21
#2楼
得票数 84

如果你正在寻找一个临时的解决方案,你可以在你的package.json中"pin"ESLint版本为8.22.0,将它设置为。

"eslint": "8.22.0"

之后更新你的项目,回到8.22而不是8.23,也就是说。

  • 删除 node_modules 文件夹
  • 清理package-lock.json(把它也去掉)。
  • 运行npm install

或在一个命令中。

rm -rf node_modules; rm package-lock.json; npm install

希望这个问题能尽快得到解决。

Pavel Kovalev 提问于2022-08-29
Pavel Kovalev 修改于2022-09-26
或一个稍短的单行字。rm -fr node_modules package-lock.json; npm installJordan Pickwell 2022-09-14
#3楼
得票数 18

我在使用ESLint和WebStorm时,也遇到了同样的问题。

这里是解决方案。

yarn add eslint@8.22.0 --save-exact

npm install eslint@8.22.0 --save-exact
Hadnazzar 提问于2022-09-10
Peter Mortensen 修改于2022-09-25
#4楼
得票数 5

对我来说,其他的解决方案并不奏效。

简单地将WebStorm更新到2022.2.3版本就解决了这个问题。

DeineOma420 提问于2022-10-20
#5楼
得票数 4

我也面临着同样的问题。

这就解决了这个问题。

npm install eslint@8.22.0 --save-exact
Immanu'el Troh 提问于2022-09-16
Peter Mortensen 修改于2022-09-25
#6楼
得票数 0

对我来说是有效的。

{
    "dependencies": {
        "react": "^18.2.0",
        "react-dom": "^18.2.0",
        "react-router": "^6.3.0",
        "react-router-dom": "^6.3.0",
        "react-scripts": "^4.0.1"
    },
    "devDependencies": {
        "eslint": "8.22.0",
        "eslint-plugin-prettier": "^4.0.0",
        "prettier": "^2.7.1"
    }
} 
Garvae 提问于2022-10-03