我正在做一个AWS SAM无服务器项目,一个用Node.js编写的Lambda函数。
Lambda执行环境已经提供了AWS SDK,因此没有必要将此依赖项推入部署。
当aws-sdk作为另一个包的嵌套依赖出现时,问题就出现了。
例如,我需要依赖于aws-sdk的aws-appsync。因此,部署规模太大。整个aws-appsync包的依赖权重约为140mb,其中一个值得注意的部分是AWS SDK。在这种情况下,将超过最大部署大小,并且部署过程将失败。
我可以让npm安装一个包和它的所有依赖项,除了一个特定的依赖项吗?在这种情况下,我会从依赖项中排除aws-sdk。
发布于 2021-11-15 15:35:53
一个简单的解决方案是将aws-sdk添加为devDependencies,而不是普通的依赖项。在捆绑代码并上传代码之前,您可以在部署管道中运行npm i --production。这将确保devDependencies在node_modules中不可用。(如果它们已经存在,我认为它不会删除它们,所以如果您在本地执行此操作,则可能需要在运行npm命令之前删除node_modules文件夹)
https://stackoverflow.com/questions/69711021
复制相似问题