我们正在创建可重用的react组件。每个组件都被包装成一个npm库,由webpack提供。这些库中的每一个都应该将其依赖项标记为对等依赖项,并期望应用程序在使用它时安装它们吗?或者,它们应该是常规依赖关系吗?在这种情况下-我们是否冒着重复节点模块的风险?一个很好的例子是react- 1。我们包装为lib的组件需要react 2。使用这个lib的应用程序要求react应该是lib中的对等依赖项或依赖项?
发布于 2017-04-26 21:54:28
React/ReactDOM肯定需要成为一个对等依赖项。如果在依赖项中设置,并且用户安装的版本与您指定的版本不同,则可能会发生不好的事情。
他们的项目最终可能会安装两个独立的react版本。这会对构建工具、代码编辑器和react本身造成严重破坏。
发布于 2017-04-26 22:17:55
那得看情况。对于像react这样的东西,你几乎总是希望它是一个对等依赖。这是因为
因此,在这种情况下,您肯定希望使用对等依赖项来保护自己,避免在捆绑包中存在多个依赖项副本。
但是,对于其他依赖项,可能不需要这样做。例如,如果您有一个依赖项和您的应用程序都依赖于一个实用函数包,那么这两个应用程序只需将其作为常规依赖项就可以了。假设您使用^指定依赖项,您的包管理器(npm,yarn)将处理删除依赖项的工作,因此在构建时您最终得到两个副本的唯一方法是它们依赖于不同的semver主版本。如果您的应用程序和您的依赖项独立使用公共包,则应该没问题。
所以基本上,当你决定让某件东西成为对等依赖时,你要问自己的问题是,‘我是否需要防止这个包有两个不同的版本(使其成为对等依赖),或者如果有(正常依赖),可以吗?’
https://stackoverflow.com/questions/43635703
复制相似问题