如何解决AWS Lambda + Angular Web 应用程序抛出“错误:找不到模块‘@vendia/serverless-express’”
在 AWS 无服务器 Lambda 上部署 Angular Web 应用程序直到上周它都运行良好,但开始抛出错误“错误:找不到模块‘@vendia/serverless-express’”,即使在任何地方都没有提到‘@vendia/serverless-express’。生成的 lambda.js 使用“aws-serverless-express”。
通过 npm 安装“@vendia/serverless-express”,它被添加到 package.json。部署后,仍然报告错误。
重现步骤:
- 确保 angular 版本为 7 或更低,因为工具包不适用于更高版本
- ng new project-name --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/**'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。