用yarn/npm管理依赖包的版本

在package.json中基本上都是用^来锁定版本的,^只能锁定大版本,好比^2.6.1,只能肯定安装的是>2.0.0,<2.9.9的,若是已经更新到了2.9.1版本,就会下载2.9.1版本。这样就会存在安装的版本和开发时版本不一致的问题,极可能其余同事的项目都没有问题,只有你的项目启动或者页面有奇怪的报错。node

为了解决这个问题 ,咱们能够将npm 换成yarnnpm

mac安装yarn命令element-ui

brew install yarn

若是你在使用nvm,为了防止nvm对node的管理做用,安装时使用json

brew install yarn --without-node

yarn install 会自动生成一个yarn.lock文件,其中声明了每一个安装包如今安装的版本,之后在每次用yarn从新安装依赖的时候,都会优先下载yarn.lock中的版本。这样就能保证每一个同事在同一个版本上开发了。socket

那么若是咱们要手动更新某个包的版本呢?好比package.json中element-ui的版本是^2.6.1,咱们想使用2.9.1版本。ui

执行命令:yarn upgrade element-ui@2.9.1 code

package.json中版本会指定2.9.1,而且yarn.lock也会更新,这样其余同事在开发的时候,从新执行下yarn install,就会更新到指定的版本了。blog

 

固然,若是你仍是想用npm完成锁定版本的功能,也是能够的,可是要使用5以上版本,而且npm install很慢,即便配置了淘宝源,仍是很慢,因此我是放弃了。element

试了下cnpm install,发现并无生成packgae-lock.json文件,在网上查资料,说是cnpm install并不会生成lock文件,而且,就算项目中有lock文件,cnpm也不会读取这个文件,只会按package.json下载,因此cnpm 并不支持版本锁定。固然这只是道听途说,若是有人试过了还请留言告诉我,在这我就偷个懒了。由于实在太慢了,cnpm install 也是常常socket hang up.开发

相关文章
相关标签/搜索