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

Next.js 14部署至AWS S3 Serverless报错:target属性已废弃

解决Next.js 14部署AWS S3+Serverless时的target属性错误

问题出在哪

你用的@sls-next/serverless-component@3.6.0是针对Next.js 12及更早版本开发的,这个组件内部会自动往next.config.js注入target: 'serverless'配置,但Next.js 13+已经移除了target属性,改用output字段,所以部署时触发了这个错误。

具体解决办法

1. 替换旧的serverless组件

@sls-next/serverless-component已停止维护,官方推荐使用继任组件或Next.js官方部署方案:

  • 卸载旧组件:
    npm uninstall @sls-next/serverless-component
    
  • 安装兼容Next.js 13+的组件:
    npm install @serverless-nextjs/component@latest
    
    注:该组件目前处于维护模式,长期建议迁移到Next.js官方的output: "standalone"配合AWS Lambda部署方案。

2. 调整next.config.mjs配置

确保配置仅保留Next.js 14支持的字段,移除任何可能存在的target相关配置,正确的output配置示例:

/** @type {import('next').NextConfig} */
const nextConfig = {
  output: "standalone",
  // 你的其他自定义配置
};

export default nextConfig;

3. 更新serverless框架版本

你当前使用的serverless@2.72.2版本较旧,升级到最新稳定版避免兼容性问题:

npm install -g serverless@latest

或部署时直接使用最新版本命令:

npx serverless@latest deploy

4. 备选方案:使用Next.js官方AWS部署方式

如果组件方案仍有问题,直接采用官方步骤部署:

  • 本地构建生成standalone产物:
    npm run build
    
  • 将.next/standalone、.next/static和public目录上传至S3存储静态资源;将.next/standalone部署到AWS Lambda处理SSR及API路由,配合CloudFront实现CDN加速。

验证步骤

  • 先本地执行npm run build确认无错误
  • 删除.serverless目录清理部署缓存后重新部署
  • 检查serverless.yml配置文件,若存在target相关配置则删除

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 18:57:40