当我试图构建Next时。Js应用程序,那么下面的错误是伴随着一个成功的构建而来的。当我在Vercel中部署应用程序时,会显示此错误。
error - ESLint: Failed to load config "next/babel" to extend from. Referenced from: /vercel/path0/.eslintrc.json
这是我的.eslintrc.json
{
"extends": ["next/babel","next/core-web-vitals"]
}
我还添加了.babelrc
{
"presets": ["next/babel"],
"plugins": []
}
当我更改eslintrc.json文件时,我还找到了一个解决方案,如下所示:
{
"extends": ["next","next/core-web-vitals"]
}
则在构建应用程序时不会显示任何错误。但当我使用上述解决方案时,还有另一个问题显示出来,问题是:
Parsing error: Cannot find module 'next/babel'
这显示在所有带有红色标记的进口中。
我试图搜索解决方案,但没有找到任何解决方案。
我认为,这可能与这个奇怪的破解有关,它在很多地方被宣传,出于某种原因告诉您将next/babel
放在eslint
配置文件中(例如这里(。
这可能是旧next.js版本中一个旧错误的破解。但(至少(到2022年夏天,考虑到next/babel
是一个babel预设,而不是esint预设,这样做没有什么意义。相反,在最近的next.js版本中,只需重置.eslintrc.json
:
{
"extends": [
"next"
]
}
有了这个设置,事情就不会出错,从next@12.2.*
开始。
您可能还想看看接下来的eslint
自定义选项。例如,有些人可能会混淆为什么eslint
似乎不起作用。在这种情况下,请考虑这个解决方案和eslint
上的next.js文档。
如果你有这个问题,但你没有从interwebz复制+粘贴你的.eslintrc.json
,那么你可能需要更详细地描述你的情况。
使用pnpm的相同Turborepo问题。这为我解决了问题:https://github.com/vercel/next.js/issues/40687#issuecomment-1275184829
基本上将其添加到您的设置中。json
// .vscode/settings.json
{
"eslint.workingDirectories": [
{ "pattern": "apps/*/" },
{ "pattern": "packages/*/" }
]
}
或者只需将"next"
和"next/core-web-vitals"
替换为"plugin:@next/next/recommended"
https://nextjs.org/docs/basic-features/eslint
{
"extends": ["next/babel","next/core-web-vitals"]
}
我在使用TurboRepo的with-tailwind
示例时遇到了这个问题。
不知怎么的,ESlint工作得很好,但出现了这个错误。我通过将next
作为对eslint-custom-config
的开发依赖项添加到包中来解决这个问题:
pnpm install next@latest -D
{
"name": "eslint-config-custom",
"version": "0.0.0",
"license": "MIT",
"main": "index.js",
"dependencies": {
...
},
"devDependencies": {
"next": "^13.2.4"
},
"publishConfig": {
"access": "public"
}
}
我在使用TurboRepo时遇到了这个问题。对我来说,解决方案是在单回购的根中添加next
作为devDependency
。