『』Monorepo可能没你想象中那么香……( 三 )


本文插图

私有嵌套包
尽管如此 , 仍然有理由考虑在存储库中使用一个单独的包 。 它可以帮助开发人员简化导入和捆绑程序 , 而不需要在任何地方发布这些包 。 PreactCompat就是一个很好的例子 。
如果有用户可以导入的可选文件 , 但又不希望用户必须引用特定的JavaScript文件 , 希望捆绑程序自动为环境选择正确的格式 , 那么使用单独的package.json就可以了 。

『』Monorepo可能没你想象中那么香……
本文插图

在上面的例子中 , 捆绑程序可以使用简化的路径 , 而不是直接指向文件 , 还可以根据包元数据决定是否使用UMD或ESM版本的文件 。

『』Monorepo可能没你想象中那么香……
本文插图

结论
就像monorepos过度工程化并将太多的特性分离到包中一样 , 将代码分割到太多的存储库中也是如此 。 当一种模式比另一种模式更有意义时 , 那还有什么好讨论的呢?
需要进行成本效益分析 , 并将该特性作为一个单独的包放在一个存储库中 , 而不是将其作为一个可以导入的单独文件 , 或者完全放在一个单独的存储库中 , 这样做的好处是什么?总是需要考虑维护开销?

『』Monorepo可能没你想象中那么香……
本文插图

图源:unsplash
就笔者个人而言 , 基于上面列出的所有原因 , monprepos并不是前进的道路 , 相反它们应该被避免 。 也希望能帮助你们避免掉“坑” 。

『』Monorepo可能没你想象中那么香……
本文插图

留言点赞关注
我们一起分享AI学习与发展的干货
如转载 , 请后台留言 , 遵守转载规范


推荐阅读