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
管理发布流程,总体感受下来是够用。