软件工程概念梳理:项目管理器,包管理器,打包发布器

89 阅读1分钟

从功能上划分,这三个功能本身是独立的。实际上,很多工具把这 3 个功能集成在了一起。

包管理器

包管理器用于管理依赖的安装、升级、删除。包管理器本身通常大而全,也支持项目管理器和打包发布器,比如 npm/yarn/pnpm.

pnpm

npm

image.png

项目管理器

项目管理器,比如 lerna, nx, 用于管理项目代码,比如管理 monorepo, 创建脚手架等等。项目管理器依赖包管理器,可以配置使用哪个包管理器来安装依赖。项目管理器通常也集成了打包发布功能。

image.png

image.png

打包发布器

打包发布指的是把软件打包发布到软件商店中,比如发布到 npmjs.com. 通常没有单独的打包发布器,而是集成在项目管理器和包管理器中。


这三个概念不知在 js 生态中适用,在其他的生态中也适用。