npm的传递依存关系

时间:2019-10-10 11:13:05

标签: node.js npm aws-lambda aws-lambda-layers

是否可以让npm安装“伞依赖项”的所有依赖项,即使依赖项可传递地级联回到需求模块?

场景:

./lib:
package.json: dependencies {foo, bar}

./app
package.json: dependencies: {file:../lib}

因此,从app开始,我希望能够使用模块foobar,这两个模块又是lib的依赖项,而<{> 对app的依赖。

但是,在执行上面的npm install之后,我只会拥有

./app/node_modules/lib/node_modules/foo
./app/node_modules/lib/node_modules/bar

这不会使app要求foobar,因为它们只是子依赖项。

我的一个用例是使用本地层测试AWS lambda代码。如果我的lambda函数使用A层和B层,我想将devDependency设置为file:layers/Afile:layers/B,然后能够访问这些层所需的模块。目前,我不得不将A和B的所有依赖项都包含为devDependencies,因为我无法将它们“级联”。部署lambda时,AWS会整理使层中的所有模块进入node_modules路径,但这在本地运行时无济于事。我也许可以用SAM解决此问题,但无论如何我还是对基于npm的解决方案感兴趣,因为lambda场景主要用于说明。

基本上我正在寻找一个标志,使其具有依赖关系,包括其所有依赖关系以及返回给调用包的自身。另外,我正在寻找一种方法让节点在./node_modules和自定义目录(例如./node_modules/lib/node_modules)中查找模块。

这可能吗?

0 个答案:

没有答案