使用sam build命令,我希望不包括aws-sdk包,因为Node.js Lambda运行时已经包含了它。
据我所知,nodejs的sam build是来自claudiajs的claudia pack命令端口,但在运行sam build --help时没有看到任何--no-optional-dependencies标志。
我尝试将aws-sdk安装为一个可选的依赖项,但仍然包括在内。
是否有一种方法可以使用node_modules命令从sam build目录中排除依赖项?
发布于 2019-08-11 22:38:52
通过我的实验,我找到了几个选择:
npm i -D aws-sdknpm 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构建包,对我来说没有不想要的依赖项。
发布于 2021-08-10 12:51:50
McShaman答案对NPM 6有效。
NPM配置已在NPM 7中更改--“可选”已被删除。
您应该使用“省略”来忽略可选依赖关系:
https://docs.npmjs.com/cli/v7/using-npm/config#omit
# .npmrc
omit=optionalhttps://stackoverflow.com/questions/55199370
复制相似问题