我可以为 peerDependencies 提供回退吗?
Can I have a fallback for peerDependencies?
在我的 package.json 中,我想声明一个 peerDependency 并提供后备,如果我的包的用户没有安装这个 peerDependency。
我反复遇到这个问题,似乎找不到好的解决方案。假设我是一个由两个 npm 包组成的库的作者,其中一个包依赖于另一个:
package1
package2
=> 依赖于 package1
为了实现回退行为,我尝试添加 package1
作为依赖项以及对 package2
的 peerDependency。
不幸的是,这似乎完全忽略了 peerDependency,因为 peerDependencies 不强制执行任何行为,它们只是产生警告。
我正在考虑删除依赖项,只留下 peerDependency,这将强制用户在他们想要使用时安装这两个包 package1
,我想避免这种情况。
是否有任何干净的方法来实现上述行为?
阅读了很多相关内容后,没有明确的方法来实现这一点(坦率地说,正如预期的那样)。
我发现有用的一个博客 post 是 this one。在我的情况下,为了提高兼容性,我很可能会诉诸于仅使用对等依赖并牺牲一点可用性。
在我的 package.json 中,我想声明一个 peerDependency 并提供后备,如果我的包的用户没有安装这个 peerDependency。
我反复遇到这个问题,似乎找不到好的解决方案。假设我是一个由两个 npm 包组成的库的作者,其中一个包依赖于另一个:
package1
package2
=> 依赖于package1
为了实现回退行为,我尝试添加 package1
作为依赖项以及对 package2
的 peerDependency。
不幸的是,这似乎完全忽略了 peerDependency,因为 peerDependencies 不强制执行任何行为,它们只是产生警告。
我正在考虑删除依赖项,只留下 peerDependency,这将强制用户在他们想要使用时安装这两个包 package1
,我想避免这种情况。
是否有任何干净的方法来实现上述行为?
阅读了很多相关内容后,没有明确的方法来实现这一点(坦率地说,正如预期的那样)。
我发现有用的一个博客 post 是 this one。在我的情况下,为了提高兼容性,我很可能会诉诸于仅使用对等依赖并牺牲一点可用性。