解析错误: 无法找到模块‘ next/babel’

我在创建的每个新 Next.js 项目中都遇到过这个错误。编译页面没有任何问题,它只是在每个 js 文件的第一行显示为错误。

解析错误: 无法找到模块‘ next/babel’ 需要堆栈:

  • 应用程序 next _ app ratu-seo node _ module next dist 编译的 babel bundle.js
  • 应用程序 next _ app ratu-seo node _ module next dist 编译的 babel eslint-parser. js
  • D: app next _ app ratu-seo node _ module eslint-config-next parser.js
  • D: app next _ app ratu-seo node _ module@eslint eslintrc lib config-array-Factory. js
  • D: app next _ app ratu-seo node _ module@eslint eslintrc lib index.js
  • D: app next _ app ratu-seo node _ module eslint lib cli-engine cli-engine. js
  • D: app next _ app ratu-seo node _ module eslint lib cli-engine index.js
  • D: app next _ app ratu-seo node _ module eslint lib api.js
  • C: 用户 Admin.vscode 扩展 dbaeumer.vscode-eslint-2.1.23 server out eslintServer.js
88335 次浏览

Create file called .babelrc in your root directory and add this code:

{
"presets": ["next/babel"],
"plugins": []
}

And in .eslintrc, replace the existing code with:

{
"extends": ["next/babel","next/core-web-vitals"]
}

In my case I had to disable VSCode ESLint extension.

Unfortunately when I added ["next/babel"] in extends, the npm run lint stopped working and Eslint in vscode did not underlining any abnormalities.

I had this same problem - but only when I wasn't opening the project folder directly. It appears to be related to how ESLint needs to be configured for workspaces.

In addition, the currently accepted answer works for VSCode but breaks npm run lint for me.

TL;DR - see this answer which points to this blog. This fixed it for me.

Some Details

For example, if I have:

~
|  -- some_folder
|     | -- project_1
|     | -- project_2
|     ...files relating to both projects...

I'll often just cd ~/some_folder && code .

But then I get the same error you're experiencing. However, if I cd ~/some_folder/project_1 && code . then everything works fine.

If that's the case for you as well, then what you need (as described in the links above) is to:

  • Create a workspace config
  • Specify folders where you need ESLint to run

You can do this easily from VSCode. The net result (following my example above) is a file named ~/some_folder/.vscode/settings.json with contents

{
"eslint.workingDirectories": [
"./project_1",
"./project_2"
]
}

It worked for me by just adding prettier in .eslintrc file.

{
"extends": ["next", "prettier"]
}

You can also always try updating React and then Next. I had the same error message then updated them both and now my app is working fine.

Upgrade React version to latest Most applications already use the latest version of React, with Next.js 11 the minimum React version has been updated to 17.0.2.

To upgrade you can run the following command:

npm install react@latest react-dom@latest

Or using yarn:

yarn add react@latest react-dom@latest

Upgrade Next.js version to latest To upgrade you can run the following command in the terminal:

npm install next@latest

or

yarn add next@latest

ctrl + shift + p

TypeScript: Restart TS server

For Nextjs 12 add prettier in .eslintrc.json file inside your root folder.

{
"extends": ["next/core-web-vitals", "prettier"]
}

In your NextJS Project you have this file , named .eslintrc.json, In this file

You have following code

{
"extends": "next/core-web-vitals"
}

Replace it with

{
"extends": ["next/babel","next/core-web-vitals"]
}


Note: You don't need to create extra .babelrc file

Note: If you only replace with

{
"extends": ["next/babel"]
}

The red error sign will go but the code won't compile and gives compile error.

Really, just adding prettier to "extends": ["next/core-web-vitals] to have something like ==> {"extends": ["next/core-web-vitals", "prettier"]}, gets rid of the error, without having to create an extra .babelrc file. But another research that needs to be done, is to know, if there are any downsides to doing it, and i think the answer is NO

In my project, i just run yarn add @babel/core and run ctrl + shift + p in vscode, excute ESLint: Restart ESlint Server

ESLint: Restart ESlint Server

it works, and npm run lint works fine too.

> Executing task: yarn run lint <


✔ No ESLint warnings or errors

Using Next.js, TypeScript, and Tailwind CSS, I updated the .eslintrc.json file with:

{
"extends": ["next/babel", "next/core-web-vitals"]
}

then ctrl + shift + p and search for ESLint: Restart ESLint Server.

In my case, the problem is that I added "eslint.packageManager": "yarn" to the setting.json of VSCode before, and I tried to use the same setup within a new project managed with pnpm. After adding "eslint.packageManager": "pnpm" for the new workspace, and reload window, than the issue's gone.

I've tried adding "extends": ["next/babel", "next/core-web-vitals", "prettier"] to .eslintrc.js, it will fix the error only within VSCode, but will cause the other error when building my Next.js app.

I had this same problem - Close the IDE and reopen it with the project folder !!

In my case, the issue occurs when I code in VSCode and use pnpm as the package manager, I tried lots of methods in StackOverflow, and finally, I find out that it's the duty of the VSCode ESLint plugin.

So, to fix the problem without uninstalling the plugin, add the following configuration in the .vscode/settings.json and reload your editor.

{
"eslint.packageManager": "pnpm"
}

Try updating the .eslintrc.json file to

{
"extends": ["next", "prettier","next/core-web-vitals"],
"plugins": ["prettier"]
}

Also install prettier plugin if you don't have it already

npm install eslint-plugin-prettier@latest --save-dev

Don't have to include .babelrc file as it will replace Nextjs SWC compiler S

Just had this issue with the Nextjs app and the following worked for me. I no longer have issue with next/babel and I can run yarn lint.

Add prettier to your project

yarn add --dev eslint-config-prettier

Update your eslint config as follows

{
"extends": ["prettier", "next/core-web-vitals"]
}

Add global vscode settings and include your project path

{
"eslint.workingDirectories": ["./your-project"]
}