Skip to content
导航

npm

npm是node.js安装自带的包管理器,类似Python的pip,Rust的cargo

常用命令

  • 安装
    shell
    npm i # install 简写
    npm install # 检查package.json,下载并安装缺失的依赖包,根据依赖的版本号配置更新依赖
    npm i vue vue-template-compiler # 下载并安装指定依赖包,package.json中有则取配置,没有取最新版本
  • 持续集成环境下的安装
    shell
    npm ci # 效果类似npm install,但检查package-lock.json,使依赖尽量与package-lock配置一致。
  • 管理包的负责人
    shell
    npm owner add <user> <package-spec>
    npm owner rm <user> <package-spec>
    npm owner ls <package-spec>

第三方包管理工具

由于官方npm迭代缓慢,第三方包管理工具陆续出现,提前解决npm发展中遇到的问题,优化了性能。

yarn

如果代码仓库中存在yarn.lock文件,说明仓库使用的包管理工具是yarn

pnpm

如果代码仓库中存在pnpm-lock.json文件,说明仓库使用的包管理工具是pnpm

多包管理

  • 对于包的使用者来说,理想情况是对于特定领域的问题安装恰好足够的依赖
  • 对于包的负责人来说,理想情况是能把关联的包放一起,统一维护管理,自动批量发布更新

多包管理工具应需求而生。

lerna

lerna 是最早实现npm多包管理的专用工具。
lerna 可用于创建、版本控制和发布您想要开发的任何包。
但 lerna 不负责在安装更新依赖包,需要配合上述包管理工具使用。

pnpm workspace

pnpm内置工作空间(workspace)功能,用于一个空间下进行多包管理。
结合其文档推荐的changesets管理发布流程,总体感受下来是够用。