一、版本解析
"dependencies": {
"signale": "1.4.0", // 固定版本
"figlet": "*", // 任意版本(>=0.0.0)
"react": "16.x", // 匹配主要版本(>=16.0.0 <17.0.0)
"react": "16.3.x", // 匹配主要版本和次要版本(>=16.3.0 <16.4.0)
"yargs": "^14.0.0" // 匹配主要版本(>=16.0.0 <17.0.0)
"table": "~5.4.6", // 匹配主要版本和次要版本(>=16.3.0 <16.4.0)
}
二、npm ls 报错 "UNMET PEER DEPENDENCY"原理
在包的树状结构中,有时候会出现一个问题。比如两个包a、b同时依赖于不同版本的一个包c,那么这个包c会分为两个包分别下载,第一个会被下载到a、b同级的位置,当做一个扁平化处理,为了减少包的下载量,另一个会被下载到后面的包b中。
但是这样子会报一个错,因为包b中c的版本和b之外的版本不同,所以会报错"UNMET PEER DEPENDENCY",即"父依赖缺少了这个依赖的对等版本";