之前一直都用的npm install或cpmp install安装依赖,后来又被很多人推荐yarn,似乎yarn要比npm和cpmp要可靠很多,但不知道其原因,查了许多相关的信息,但并不具备说服力。求问大神现身帮忙解惑?
业精于勤,荒于嬉;行成于思,毁于随。
npm:npm 是 node 官方自带的包管理,一些个人开发的包都可以通过 npm 的相关命令进行上传,其他人通过对应的命令进行下载。
cnpm:因为国内防火墙的原因,通过 npm 下载内容会遇到失败或者速度慢的问题,taobao 就同步了一套所有 npm 上所有的包的国内镜像,因为在国内的原因,所以国内下载速度非常快,除了不能通过 cnpm 发布包,其他与 npm 的命令没有任何区别。
yarn:它与 npm 最主要的区别主要体现在 yarn.lock 上面。如果项目根目录下没有 yarn.lock 的话,就会新建这么一个文件,并且锁定对应包的版本,如果当前项目根目录下有 yarn.lock 的话,就会安装 yarn.lock 里面包的版本,而通过 npm 包安装的版本,除非你 package.json 里面是写死的,否则是会有动态变化的风险。其次yarn 能通过离线安装,并且速度会快一些。
yarn.lock
npm:npm 是 node 官方自带的包管理,一些个人开发的包都可以通过 npm 的相关命令进行上传,其他人通过对应的命令进行下载。
cnpm:因为国内防火墙的原因,通过 npm 下载内容会遇到失败或者速度慢的问题,taobao 就同步了一套所有 npm 上所有的包的国内镜像,因为在国内的原因,所以国内下载速度非常快,除了不能通过 cnpm 发布包,其他与 npm 的命令没有任何区别。
yarn:它与 npm 最主要的区别主要体现在 yarn.lock 上面。如果项目根目录下没有
yarn.lock
的话,就会新建这么一个文件,并且锁定对应包的版本,如果当前项目根目录下有yarn.lock
的话,就会安装 yarn.lock 里面包的版本,而通过 npm 包安装的版本,除非你 package.json 里面是写死的,否则是会有动态变化的风险。其次yarn 能通过离线安装,并且速度会快一些。