Webpack 无服务器框架&;next.js lambda函数超出解包大小限制

Webpack 无服务器框架&;next.js lambda函数超出解包大小限制,webpack,aws-lambda,next.js,server-side-rendering,serverless-framework,Webpack,Aws Lambda,Next.js,Server Side Rendering,Serverless Framework,我试图找出如何减少ssr应用程序(next.js&serverless framework)的包大小,使其低于250MB AWS限制:发生错误:ServerLambdaFunction-解压缩大小必须小于262144000字节(服务:AWSLambdaInternal;状态代码:400;通过运行next build和&sls deploy来部署应用程序 未打包的归档文件是600MB+,是AWS允许lambda的250MB的两倍多。下面是节点_模块中最大的依赖项列表。我可以看到,通过将几个依赖项移

我试图找出如何减少ssr应用程序(next.js&serverless framework)的包大小,使其低于250MB AWS限制:
发生错误:ServerLambdaFunction-解压缩大小必须小于262144000字节(服务:AWSLambdaInternal;状态代码:400;通过运行next build和&sls deploy来部署应用程序

未打包的归档文件是600MB+,是AWS允许lambda的250MB的两倍多。下面是节点_模块中最大的依赖项列表。我可以看到,通过将几个依赖项移动到开发人员依赖项,我可以稍微减少它,但这并不能解决问题

如果有人能给我指出正确的方向,我将不胜感激

这是我的package.json:

{
  "name": "ssr-ui",
  "version": "1.0.0",
  "description": "",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "next build",
    "deploy": "next build && sls deploy",
    "start": "next start",
    "dev": "next dev"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "@aws-amplify/api": "^3.2.4",
    "@aws-amplify/auth": "^3.4.4",
    "@aws-amplify/core": "^3.5.4",
    "@aws-amplify/storage": "^3.3.4",
    "@aws-amplify/ui-react": "^0.2.21",
    "antd": "^4.6.4",
    "antd-img-crop": "^3.10.0",
    "axios": "^0.20.0",
    "country-state-picker": "^1.1.1",
    "echarts": "^4.9.0",
    "echarts-for-react": "^2.0.16",
    "express": "^4.17.1",
    "next": "^9.5.3",
    "next-react-svg": "^1.1.2",
    "path-match": "^1.2.4",
    "query-string": "^6.13.2",
    "react": "^16.13.1",
    "react-dom": "^16.13.1",
    "react-router-dom": "^5.2.0",
    "react-share": "^4.2.1",
    "sass": "^1.26.11",
    "serverless-apigw-binary": "^0.4.4",
    "serverless-domain-manager": "^4.2.0",
    "serverless-http": "^2.5.0",
    "url": "^0.11.0"
  },
  "devDependencies": {
    "@types/jest": "^26.0.14",
    "@types/node": "^14.10.3",
    "@types/react": "^16.9.49",
    "@types/react-dom": "^16.9.8",
    "@types/react-router-dom": "^5.1.5",
    "typescript": "^4.0.2"
  }
}
我的serverless.yml是:

service: ssr-react-next

provider:
  name: aws
  runtime: nodejs12.x
  region: ap-southeast-2
  stage: ${self:custom.secrets.NODE_ENV}
  environment:
    NODE_ENV: ${self:custom.secrets.NODE_ENV}

functions:
  server:
    handler: index.server
    events:
      - http: ANY /
      - http: ANY /{proxy+}

plugins:
  - serverless-apigw-binary
  - serverless-domain-manager

custom:
  secrets: ${file(secrets.json)}
  apigwBinary:
    types:
      - '*/*'
  customDomain:
    domainName: ${self:custom.secrets.DOMAIN}
    basePath: ''
    stage: ${self:custom.secrets.NODE_ENV}
    createRoute53Record: true

谢谢!

aws lambda限制为250MB,但您可以尝试在serverless.yml中使用
useServerleStrateTarget:true
,它应该可以解决您的问题