CJY0208 / react-activation

Hack <KeepAlive /> for React
https://www.npmjs.com/package/react-activation
MIT License
1.78k stars 140 forks source link

建议peerdependencies加上 prop-types #297

Open lopo12123 opened 9 months ago

lopo12123 commented 9 months ago

新建一个项目单纯引入此库使用会报错无法找到 prop-types,排查发现是 create-react-context 使用并列为了 peerDependencies。

一个库最好将所有子依赖项的 peer 都列举出来避免这个问题

image

CJY0208 commented 8 months ago

这似乎是新一代包管理器的约定,我对此还不了解,有什么资料可以说明这个约定的含义嘛

lopo12123 commented 8 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 里的包都不包含这个依赖)