无法加载 SWC 二进制文件

MON*_*ONI 9 babeljs next.js swc-compiler

尝试使用 Next.js 运行命令时npm run dev显示error - failed to load SWC binary see more info here: https://nextjs.org/docs/messages/failed-loading-swc.

PS D:\web-development\new-project\explore> npm run dev

> dev     
> next dev

ready - started server on 0.0.0.0:3000, url: http://localhost:3000
Error: The specified module could not be found.
\\?\D:\web-development\new-project\explore\node_modules\@next\swc-win32-x64-msvc\next-swc.win32-x64-msvc.node
    at Object.Module._extensions..node (node:internal/modules/cjs/loader:1179:18)
    at Module.load (node:internal/modules/cjs/loader:975:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Module.require (node:internal/modules/cjs/loader:999:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at loadNative (D:\web-development\new-project\explore\node_modules\next\dist\build\swc\index.js:84:28)
    at loadBindings (D:\web-development\new-project\explore\node_modules\next\dist\build\swc\index.js:41:32)
    at async Object.isWasm (D:\web-development\new-project\explore\node_modules\next\dist\build\swc\index.js:146:20)
    at async D:\web-development\new-project\explore\node_modules\next\dist\build\webpack\loaders\next-swc-loader.js:62:178 {
  code: 'ERR_DLOPEN_FAILED'
}
error - Failed to load SWC binary, see more info here: https://nextjs.org/docs/messages/failed-loading-swc
PS D:\web-development\new-project\explore>
Run Code Online (Sandbox Code Playgroud)

小智 12

解决这个问题的最好方法

我通过删除 node_modules重新安装包解决了这个问题。我认为这是最好的解决方案。

赶紧跑

rm -rf node_modules      // Linux
rmdir /S node_modules   // Windows
Run Code Online (Sandbox Code Playgroud)

他们安装软件包

npm install
Run Code Online (Sandbox Code Playgroud)

终于跑了

npm run dev
Run Code Online (Sandbox Code Playgroud)

  • 单独删除node_modules对我来说不起作用,删除node_modules后我还必须删除package-lock.json。然后运行 ​​npm i 安装依赖项,这解决了它。 (4认同)

MON*_*ONI 6

我解决的方法。

一开始,我按照错误给出的文档链接进行操作。

错误 - 无法加载 SWC 二进制文件,请在此处查看更多信息: https: //nextjs.org/docs/messages/failed-loading-swc

转到此链接https://nextjs.org/docs/messages/failed-loading-swc并阅读此文档。

然后转到此链接https://swc.rs/。下载 SWC 二进制预构建并添加 Transpile JavaScript 文件。

# Download prebuilt binaries
npm i -D @swc/cli @swc/core

# Transpile JavaScript file and emit to stdout
npx swc ./file.js
Run Code Online (Sandbox Code Playgroud)

或者,转到此链接https://nextjs.org/docs/messages/failed-loading-swc并在 next.config.js 旁边创建 .babelrc 文件。将文档中的代码插入 .babelrc 文件中。

{
    "presets": ["next/babel"]
}
Run Code Online (Sandbox Code Playgroud)

然后“npm run dev”就可以了(但它将使用 Babel 而不是 SWC)。