AWSLambda+AngularWeb应用程序抛出“错误:找不到模块‘@vendia/serverless-express’”

我正在尝试按照教程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。部署后,仍然报告错误。

重现步骤:

  1. 确保 angular 版本为 7 或更低,因为工具包不适用于更高版本
  2. ng new project-name --style css --routing false
  3. cd 项目名称
  4. ng 添加@ng-toolkit/universal@7.1.2
  5. npm run build:prod
  6. npm 运行服务器
  7. ng 添加@ng-toolkit/serverless@8.1.0
  8. npm i serverless-api-compression
  9. npm 运行构建:无服务器:部署

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

回答

aws- serverless -express 已更名为 @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/**'


以上是AWSLambda+AngularWeb应用程序抛出“错误:找不到模块‘@vendia/serverless-express’”的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>