首页 > 解决方案 > 如何使用无服务器部署包含 package.json?

问题描述

我正在使用 webpack 和无服务器部署到 aws lambda。到目前为止,我已经能够将其配置为将所有依赖项捆绑到一个 ts 文件中,但 aws 抱怨没有 package.json。所以,我也找到了一种上传节点模块文件夹的方法,它也引入了 package.json,但由于我在 Windows 上,aws 实例不喜欢这些库。

当我运行无服务器包或部署命令时如何包含 package.json 以便 aws lambda 可以运行安装?

include:
      - package.json

不工作。

标签: amazon-web-servicesaws-lambdaserverless-frameworkserverlessaws-serverless

解决方案


如果您使用的是无服务器 Webpack插件,您应该能够通过使用packagerOptions插件的配置并指定 x64 架构的 linux 平台以及要打包的 npm 模块列表来获取您需要安装的任何本机模块。

有关更多信息,请参阅插件文档的自定义脚本部分。

例如,如果您的 Lambda 函数依赖于sharpnpm 包,您需要在serverless.yml文件中添加如下内容:

custom:
  webpack:
    includeModules: true
    packagerOptions:
      scripts:
        - npm_config_platform=linux npm_config_arch=x64 yarn add sharp

推荐阅读