Skip to main content

js包管理器

NPM or YARN or PNPM

首先npm是最早也是node默认的包管理器,但是其有很多缺点:

  • 使用npm install安装的包,是嵌套形式的,并且没有处理公共依赖的问题,导致依赖树结构复杂且体积大

于是乎就有了yarn,使用yarn安装有几个优点:

  • 通常比使用npm更快
  • 使用一个扁平化的依赖结构树组织package,避免嵌套和重复依赖
  • 支持离线安装(得力于缓存)
  • 有更好的算法,使得每个人的环境中安装的都是同一个版本(yark.lock.json)

pnpm的优点:

  • 主要解决了一个包访问权限的问题,比如你的项目中依赖了Express,而express依赖了A包,这样在你的package.json的dependence中有Express但是没有 A包的,可是在使用npm 和 yarn 安装的包的项目中你却可以在你的src源码文件中 require(A) 访问到A,这是不安全的! 后面有可能Express升级或者其他改动 有可能导致A包升级或者压根不存在了,那么你的代码就会报错了。pnpm内部使用硬链接来组织依赖...to be continued