You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js 14对树莓派4(ARMv7)无SWC支持?求解决方案

树莓派4 无法运行Next.js 14的解决方案

问题原因

Next.js 14依赖的SWC编译器未发布Linux ARMv7(树莓派4默认32位架构)的二进制包,Vercel仅维护到Next.js 13版本的对应包;直接使用Babel替代时,单纯配置.babelrc会与Next.js内置编译流程冲突,导致构建文件缺失错误。

可行解决办法

1. 切换到64位系统并使用ARM64架构的SWC包

树莓派4支持64位系统,若已安装64位Raspbian:

  • 临时设置环境变量安装依赖:
    npm_config_arch=arm64 npm install
    npm run dev
    
  • 或在项目根目录创建.npmrc文件,永久指定架构:
    arch=arm64
    
    之后重新执行npm install即可拉取适配ARM64的SWC包。

2. 降级到Next.js 13.x稳定版本

由于Next.js 13可正常运行,直接锁定版本:

npm install next@13.5.6 react@^18 react-dom@^18

同时修改package.json中的next版本为13.5.6,避免后续自动升级。

3. 手动编译ARMv7版本的SWC包(进阶方案)

若坚持使用Next.js 14,可自行编译对应架构的SWC包:

  • 安装编译依赖:
    sudo apt install rustc cmake build-essential
    
  • 克隆SWC仓库并切换至与Next.js 14匹配的版本(可查看node_modules/next/package.json中@swc/core的版本号):
    git clone https://github.com/swc-project/swc.git
    cd swc
    git checkout <对应版本号>
    
  • 编译完成后,将产物替换至node_modules/@next/swc-linux-arm-gnueabihf目录,或发布到本地npm仓库使用。

4. 正确配置Babel替代SWC

之前的Babel配置方式有误,需在next.config.js中禁用SWC:

/** @type {import('next').NextConfig} */
const nextConfig = {
  swcMinify: false, // 禁用SWC压缩
  compiler: {
    removeConsole: false,
  },
}

module.exports = nextConfig

保留.babelrc的配置:

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

重新执行npm run dev即可,但注意Babel编译速度远慢于SWC。

内容的提问来源于stack exchange,提问作者Ini90

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 17:46:23