是否可以在我自己的项目中使用另一个包中的 npm 依赖项?

Myk*_*nko 3 javascript dependencies node.js webpack package.json

我有一个node.js项目。在这个项目中,我有 dependencyA和 dependency B,我还注意到A它的依赖项内部的依赖项有 dependency B,所以我的问题是我应该安装依赖项B还是我可以从依赖项中使用它A

SEo*_*EoF 5

你可以,但是...

如果依赖项 A 不再依赖于 B 会发生什么?

因此,您应该将代码中所需的所有包添加为依赖项。

编辑

需要考虑的其他要点:

您的代码已针对代码版本 1.0.0 构建,并且 A 已将 B 所需的版本升级到代码版本 2.0.0。

假设依赖项 B 遵循 SEMVER,则版本 1.0.0 和版本 2.0.0 之间将发生重大破坏性更改。如果 B 不遵循 SEMVER,则可能随时应用重大更改。

NPM(Yarn 和其他包管理器)将负责这一点,并为不同的包和整个项目提供正确的版本。这意味着包 B 的 1.0.0 版本将直接放入您的node_modules文件夹中,而包 B 的 2.0.0 版本将放入node_modules包 A 的文件夹中。

框架/库

当包含库、框架等时,通常会使用库/框架直接使用的包,即使您没有将它们放入引用中。

这应该保持在最低限度,并且只能根据库/框架文档进行,因为如果您需要升级库/框架(您应该经常这样做),它可能会导致复杂化。