gpt4 book ai didi

javascript - 一个 Node 模块可以利用它所依赖的 Node 模块的依赖关系吗?

转载 作者:太空宇宙 更新时间:2023-11-04 01:42:21 26 4
gpt4 key购买 nike

TL;博士; Node中是否可以实现包继承?或者有推荐的工具可以帮助解决这个问题吗?

我正在一个包含 60 多个(并且还在不断增加)网络应用程序的企业环境中工作。我们还模块化了组件,例如页眉/页脚/登录等。因此网络应用程序不需要重复代码,只需将它们作为依赖项引入即可。我们还有库模块来提供常见日志记录、建模和错误处理等功能。我们还有一个主要库,为测试和 linting 等维护提供了基础。

我想做的是访问该主库在上层模块中使用的依赖项。

lib-a   
|
—> lib-b
|
—> babel, chai, mocha, etc.

我想让 lib-a 从 lib-b “继承”babel、chai、mocha 等,而不必专门添加依赖项。这样我的所有库以及最终的 Web 应用程序都将具有相同的版本,并且我不必在每个 package.json 中重复相同的依赖项。我也不需要经历让 N 个团队更新 60-100 个应用程序/库/诸如此类的麻烦,并且必须处理他们提示维护问题。

我确实知道这违背了 npm 的核心,但在我们使用它的层面上,它正在成为维护难题。在这一点上,更加 DRY 肯定会带来好处。

因此,重复顶部的原始问题 - 是否可以在 Node 中实现包继承?或者有什么推荐的工具可以帮助解决这个问题吗?

我见过以下工具。有人用过吗?或者对他们有想法。还有其他吗?
https://github.com/FormidableLabs/builder
https://github.com/Cosium/dry-dry

最佳答案

这是一个坏主意。您应该假设您无法控制依赖项。还有什么方法可以改变依赖关系呢?

假设您的示例中的lib a使用mocha。由于它依赖于 lib b,而 lib b 也依赖于 mocha,因此您可以决定不在 lib apackage.json 中列出 mocha

如果有人重构 lib b 不再使用 mochalib a 就会突然崩溃。这不好。

我们处理同样多的项目。我们使用Greenkeeper , RenovateBot ,以及一些立即将更改应用于我们所有存储库的工具。从长远来看,这对您来说可能是比违背 Node 的依赖模型更好的策略。

关于javascript - 一个 Node 模块可以利用它所依赖的 Node 模块的依赖关系吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52485263/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com