
当您尝试将 next.js 应用部署到 vercel 时,如果遇到类似 npm err! code ebadplatform 的错误,并且错误信息中明确指出平台不兼容,例如 wanted {"os":"darwin","arch":"x64"} (current: {"os":"linux","arch":"x64"}),这表明您的项目依赖中包含了特定于 macos (darwin) 平台的包,而 vercel 的构建环境是基于 linux 的。
此问题通常与 Next.js 内部使用的 SWC (Speedy Web Compiler) 相关。SWC 是一种高性能的 JavaScript/TypeScript 编译器,为了最大化性能,它会提供针对不同操作系统和 CPU 架构的预编译二进制文件。如果您在 macOS 上开发,@next/swc-darwin-x64 可能会被安装。然而,当部署到 Vercel(Linux x64 环境)时,如果这个 macOS 版本的 SWC 包被包含在依赖中,就会导致构建失败。
典型的错误日志如下:
npm ERR! code EBADPLATFORM
npm ERR! notsup Unsupported platform for @next/swc-darwin-x64: wanted {"os":"darwin","arch":"x64"} (current: {"os":"linux","arch":"x64"})
npm ERR! notsup Valid OS: darwin
npm ERR! notsup Valid Arch: x64
npm ERR! notsup Actual OS: linux
npm ERR! notsup Actual Arch: x64
npm ERR! A complete log of this run can be found in:
npm ERR! /vercel/.npm/_logs/2023-05-30T18_43_56_771Z-debug-0.log
Error: Command "npm install" exited with 1
BUILD_UTILS_SPAWN_1: Command "npm install" exited with 1解决此问题的核心在于确保您的项目依赖中只包含适用于 Vercel Linux 环境的 SWC 包。
首先,您需要从项目中移除不适用于 Linux 环境的 SWC 包,即 @next/swc-darwin-x64。即使您没有在 package.json 中直接声明这个依赖,它也可能作为 Next.js 或其他相关包的传递性依赖被安装。
在您的项目根目录下执行以下命令:
npm uninstall @next/swc-darwin-x64
此命令将从您的 node_modules 目录中删除该包,并更新 package.json 和 package-lock.json(如果它被直接列为依赖)。
接下来,您需要安装适用于 Vercel Linux x64 环境的 SWC 包:@next/swc-linux-x64。
执行以下命令:
npm install @next/swc-linux-x64
此操作将确保您的项目在 Vercel 构建时能够找到并使用正确的 SWC 编译器。通常,Next.js 会在 npm install 过程中根据当前平台自动选择并安装正确的 SWC 包。但如果之前安装了错误的平台包,手动指定安装是必要的。
完成上述步骤后,请将您的更改推送到 Git 仓库(如果您的 Vercel 项目是与 Git 集成的),然后触发一次新的 Vercel 部署。Vercel 将会拉取最新的代码并重新执行构建过程,此时应该能够成功安装依赖并完成部署。
EBADPLATFORM 错误在 Next.js 应用部署到 Vercel 时,通常源于 SWC 编译器包的平台不兼容性。通过明确地移除为 macOS 构建的 @next/swc-darwin-x64 包,并安装适用于 Vercel Linux 环境的 @next/swc-linux-x64 包,可以有效解决此问题。遵循本教程的步骤,您将能够确保 Next.js 应用在 Vercel 平台上顺利完成构建和部署。
以上就是解决 Next.js 应用在 Vercel 部署时 SWC 平台依赖不兼容问题的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号