angular - AWS Lambda + Angular Web 应用程序抛出 "Error: Cannot find module ' @vendia/serverless-express'"

标签 angular amazon-web-services serverless-framework aws-serverless

我正在尝试按照教程 https://medium.com/better-programming/getting-started-with-serverless-angular-universal-on-aws-lambda-8754bcc4dc19 在 AWS 无服务器 Lambda 上部署 Angular Web 应用程序
直到上周它都运行良好,但开始抛出错误“错误:找不到模块‘@vendia/serverless-express’”,即使在任何地方都没有提到‘@vendia/serverless-express’。生成的 lambda.js 使用“aws-serverless-express”。
通过 npm 安装“@vendia/serverless-express”,它被添加到 package.json。部署后,仍然报告错误。
重现步骤:

  • 确保 angular 版本为 7 或更低,因为工具包不适用于更高版本
  • ng 新项目名称 --style css --routing false
  • cd 项目名称
  • ng 添加@ng-toolkit/universal@7.1.2
  • npm run build:prod
  • npm 运行服务器
  • ng 添加@ng-toolkit/serverless@8.1.0
  • npm i serverless-api-compression
  • npm run build:serverless:deploy

  • 如果需要任何进一步的信息,请告诉我。提前致谢!

    最佳答案

    aws-serverless-express 有 rebranded to @vendia/serverless-express .新路径尚未包含在 ng-toolkit 的 serverless-aws.yml 中文件,这就是导致问题的原因。
    serverless.yml excludes 中添加以下内容会解决这个问题。

    - '!node_modules/@vendia/**'
    
    最终结果将是这样的
    package:
      exclude:
       - src/**
       - node_modules/**
       - firebug-lite/**
       - e2e/**
       - coverage/**
       - '!node_modules/@vendia/**'
       - '!node_modules/aws-serverless-express/**'
       - '!node_modules/binary-case/**'
       - '!node_modules/type-is/**'
       - '!node_modules/media-typer/**'
       - '!node_modules/mime-types/**'
       - '!node_modules/mime-db/**'
    

    关于angular - AWS Lambda + Angular Web 应用程序抛出 "Error: Cannot find module ' @vendia/serverless-express'",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65446631/

    相关文章:

    angular - 禁用 Kendo UI 日历小部件中的 future 日期

    amazon-web-services - Terraform 替换存储桶对象而不是版本控制

    python-2.7 - 使用boto将目录上传到s3

    aws-api-gateway - 无服务器框架 v1 - 一项服务中的多个资源

    node.js - 减少无服务器框架发送的 Node 模块 zip 的大小

    firebase - 在 Firebase 身份验证和数据库之间保持电子邮件同步

    angular - D3、TS 和 Angular 2

    angular - 通过按 Angular 4 中的回车键提交表单

    c# - Angular - 如何在 subscribe() 上从 Web API 下载文件

    amazon-web-services - 使用Amazon EBS节省成本