一、问题
使用 npm 安装第三方包,有时会出现一大堆 WARN
。
二、分析
现在不管什么框架,vue
、umi
、webpack
、babel
、eslint
都讲究插件化开发,对普通开发人员提供插件书写接口方便自行扩展。想法是好的,但是存在一些问题。
eslint-config-react-app@2.1.0
是 eslint
的一个插件,写这个插件的时候 eslint 版本为 4.1.1。eslint 本身需要不断优化升级,版本更迭过程中会不停的新增 api、废弃 api。也就是说,eslint-config-react-app@2.1.0
肯定适用 eslint@4.1.1
,但不一定适用 eslint@6.x
(6.x 中可能会废弃相关api)。普通用户并不知道这一点,傻乎乎的下载最新的 eslint
和 eslint-config-react-app
最新包,结果无法正常运行。
Npm 为了解决上面的问题,在 npm@1.2.10
之后提供了 peerDependencies
属性,具体使用如下,插件包 esli