是否可以在我自己的项目中使用来自另一个包的 npm 依赖项?
Is it possible to use npm dependencies from another package in my own project?
我有一个 node.js
项目。在这个项目中,我有依赖项 A
和依赖项 B
,我还注意到它的依赖项中的依赖项 A
有依赖项 B
,所以我的问题是我应该安装依赖项 B
或者我可以从依赖项中使用它 A
?
可以,但是...
如果依赖项 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 版将放入 A 包的 node_modules
文件夹中。
Frameworks/Libraries
当包含库、框架等时,通常会使用 library/framework 直接使用的包,即使您没有将它们放入参考文献中也是如此。
这应该保持在最低限度,并且只能根据 library/framework 文档,因为如果您需要升级 library/framework(您应该经常这样做),它可能会导致并发症。
我有一个 node.js
项目。在这个项目中,我有依赖项 A
和依赖项 B
,我还注意到它的依赖项中的依赖项 A
有依赖项 B
,所以我的问题是我应该安装依赖项 B
或者我可以从依赖项中使用它 A
?
可以,但是...
如果依赖项 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 版将放入 A 包的 node_modules
文件夹中。
Frameworks/Libraries
当包含库、框架等时,通常会使用 library/framework 直接使用的包,即使您没有将它们放入参考文献中也是如此。
这应该保持在最低限度,并且只能根据 library/framework 文档,因为如果您需要升级 library/framework(您应该经常这样做),它可能会导致并发症。