我在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"
}

该问题在WEB-57089中跟踪,并在2022.2.2预览版中修复。

该问题是由ESLint 8.23中引入的更改引起的(冒犯了上游提交:GitHub上的视图)。将ESLint降级到8.22。X或更早版本(使用NPM安装eslint@8.22.0——save-exact)应该有帮助。


如果你正在寻找一个临时的修复,你可以在你的包中“固定”ESLint版本到8.22.0。Json设置为:

"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

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


我在ESLint和WebStorm中也遇到了同样的问题。

下面是解决方案:

yarn add eslint@8.22.0 --save-exact

npm install eslint@8.22.0 --save-exact

我也遇到过同样的问题。

这样就解决了。

npm install eslint@8.22.0 --save-exact

对我有用:

{
    "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"
    }
} 

对我来说,其他的方法都不管用。

一个简单的WebStorm 2022.2.3版本更新解决了这个问题。


我的朋友们,如果你正在使用Webstorm或任何Jetbrains产品,你可以在你的eslint设置中使用这个模式,它将永远被修复。

设置(或“Alt + Shift + S”) 搜索“eslint” 选择“自动ESLint配置” 然后将下面的图案替换为现有的图案: “* * / *。(js | ts | jsx | tsx | html | vue)”