Open lopo12123 opened 9 months ago
这似乎是新一代包管理器的约定,我对此还不了解,有什么资料可以说明这个约定的含义嘛
关于 peerdependencies 的字段解释 https://nodejs.org/en/blog/npm/peer-dependencies
类似 掘金知乎也有比较多的解释,可以搜搜看一下大家的理解。
我个人的使用习惯就是,如果我这个包的用户一般来说一定会装这个库,那么我就将这个依赖项列为peer而不是直接的dependence。 比如开发组件库的时候可以将 react 和 react-dom 列为peer,因为用户一定会去装,而不必要在我的组件库里打包一份react相关的代码,直接用外部的就可以。
提出此issue的原因是,我直接引入了此库,直接使用会出现缺少 prop-types 库的提示,在peerdependencies 里面罗列一下对用户更友好,包管理工具也可以有更好的提醒信息(比如提示用户有某依赖项作为 peer 但是当前的所有package.json 里的包都不包含这个依赖)
新建一个项目单纯引入此库使用会报错无法找到
prop-types
,排查发现是create-react-context
使用并列为了 peerDependencies。一个库最好将所有子依赖项的 peer 都列举出来避免这个问题