接下来无法加载 SWC 二进制文件

Eka*_*oho 61 babeljs next.js swc-compiler

尝试使用 nextjs npm run dev 运行命令时显示错误 - 无法加载 SWC 二进制文件,请在此处查看更多信息: https: //nextjs.org/docs/messages/failed-loading-swc

我尝试卸载节点并使用版本 16.13 重新安装它,但没有成功,在 vercel 页面上,但到目前为止不成功。有小费吗?

另外,我注意到这是 NextJS 讨论页面上的一个当前问题,它与新的基于 Rust 的编译器有关,它比 Babel 更快。

小智 132

删除项目中的package-lock.json文件和目录,然后在终端上运行。node_modulesnpm install

  • 成功了。有时您只需拔下插头然后重新插入;) (5认同)
  • 有时,您还需要在“npm install”之前运行“npm cache clean --force”,特别是如果您最近升级到了更高版本的 Node.js。 (5认同)

Eka*_*oho 19

这按照nextJS 文档的建议工作,但它剥夺了 Rust 编译器及其所有好处...这是我为那些最终陷入困境的人所做的...

步骤 1. 添加此行或编辑 next.json.js

{
swcMinify: false // it should be false by default 
}
Run Code Online (Sandbox Code Playgroud)

步骤2.将“.babelrc”文件添加到项目根目录

步骤 3. 将此代码段添加到新文件“.babelrc”中

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

步骤 4,您需要运行此命令,因为步骤 1-3 将消除 SWC 加载失败错误,但在运行构建命令时您会注意到另一个错误。所以也运行这个

npm install next@canary
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助

  • 这是最后的希望场景,这当然不应该是一个可接受的答案 (4认同)

小智 10

如果您使用 Docker,只需添加RUN npm install -D @swc/cli @swc/core到 Dockerfile 即可。

  • 您能添加更多详细信息吗?为什么要做这个工作? (3认同)

小智 6

我有同样的问题,不知道为什么,我使用的是node v18.4.0 next@12.1.6

解决这个问题

只需访问该网站

https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170

安装这个 在此输入图像描述


小智 5

在 Windows 上解决此问题的最佳方法是安装“Microsoft Visual C++ Redistributable”

发生错误的原因是 Next.js 现在使用基于 Rust 的编译器 SWC 来编译 JavaScript/TypeScript,并且为此 SWC 需要下载与您的系统兼容的二进制文件。

要解决这个问题:

只需前往Microsoft Visual C++ Redistributable下载最新支持的 Microsoft Visual C++ Redistributable。

或者,您可以直接从这里下载(请先检查您的版本)

最新支持的 x64 版本的固定链接

X64 Redistributable 软件包包含 ARM64 和 X64 二进制文件。当 X64 Redistributable 安装在 ARM64 设备上时,此软件包可以轻松安装所需的 Visual C++ ARM64 二进制文件。

最新支持的 x86 版本的固定链接

最新支持的 ARM64 版本的固定链接