Serverless: 在部署之前从本地 node_modules 中删除 aws-sdk 的选项

创建于 2017-06-06  ·  3评论  ·  资料来源: serverless/serverless

这是一个(功能提案)

在部署之前从本地 node_modules 中删除 aws-sdk 的选项

描述

单独的 aws-sdk 是一个巨大的节点模块(解压后超过 20mb),连同它的所有依赖项,它的权重足以防止在 lambda 平台上进行浏览器内代码编辑。

用户可能想要使用依赖于 aws-sdk 的东西(例如@awspilot/dynamodb )——但这将与 lambda 的本机 aws-sdk 模块一起运行良好。

目前,您可以手动删除 aws-sdk 及其依赖项,从而以我的案例为例,将您的函数 package.zip 缩小 25 倍。

无服务器是否可以在打包/部署之前删除这些不必要的模块?

类似或相关的问题:

附加数据

不适用

feature

最有用的评论

FWIW:_现在_添加aws-sdk作为devDependency就足够了。 然后它将被自动排除,因为 AWS Lambda Node.JS 运行时嵌入了 aws-sdk,您的 Lambda 应该仍然可以工作(我的 :))

所有3条评论

@davepwsmith感谢您的开放👍

您可以使用exclude / include规则来定义 glob,这些规则将描述部署包中应排除/包含的内容(请参阅:https://serverless.com/framework/docs/providers /aws/guide/packaging#exclude--include)。

我们还在处理可能相关的#2709。

FWIW:_现在_添加aws-sdk作为devDependency就足够了。 然后它将被自动排除,因为 AWS Lambda Node.JS 运行时嵌入了 aws-sdk,您的 Lambda 应该仍然可以工作(我的 :))

@ChristianUlbrich感谢分享!
只需将aws-sdk移动到devDependency就减少了 9mb 的包大小🔥

此页面是否有帮助?
0 / 5 - 0 等级