如何使用适用于 nodejs 的 AWS "sam build" 排除模块?



使用sam build命令我期望不包括aws-sdk软件包作为Node.js lambda Runtime已经包含了IT。

正如我了解nodejs的sam buildclaudiajsclaudia pack端口,但是当我运行sam build --help时,我看不到任何--no-optional-dependencies标志。

我尝试将aws-sdk作为可选依赖性安装,但仍包括在内。

是否有一种方法可以使用sam build命令从node_modules目录中排除依赖关系?

从我的实验中我找到了几个选项:

  1. 安装AWS-SDK作为DEV依赖关系
npm i -D aws-sdk
  1. 安装AWS-SDK作为可选依赖性,然后使用.NPMRC文件禁用在NPM安装上安装可选的DECENCES
npm i -O aws-sdk
# .npmrc
optional = false

我的文件夹结构看起来像这样:

-- project
   |-- lambdas
   |   |-- lambda1
   |   |   |-- node_modules
   |   |   |   `-- ...
   |   |   |-- .npmrc
   |   |   |-- index.js
   |   |   |-- package-lock.json
   |   |   `-- package.json
   |   `-- lambda2
   |       |-- node_modules
   |       |   `-- ...
   |       |-- .npmrc
   |       |-- index.js
   |       |-- package-lock.json
   |       `-- package.json
   |-- package-lock.json
   |-- package.json
   `-- template.yml

在这两个实例中运行SAM构建都将包装捆绑在一起,而没有不需要的依赖关系。

mcshaman答案对NPM 6。

npm配置已在NPM 7中发生了变化 - "可选"被删除。

您应该使用"省略"相反,忽略可选依赖性:

https://docs.npmjs.com/cli/v7/ususe-npm/config#omit

# .npmrc
omit=optional

相关内容

最新更新