原文:Understanding differences between npm, yarn and pnpm
作者:Alex Kras
翻译:雁惊寒
本文作者对比了当前主流的包管理工具npm、yarn、pnpm之间的区别,并提出了合适的使用建议,以下为译文:
NPM
npm是Node.js能够如此成功的主要原因之一。npm团队做了很多的工作,以确保npm保持向后兼容,并在不同的环境中保持一致。
npm是围绕着语义版本控制(semver)的思想而设计的,下面是从他们的网站摘抄过来的:
给定一个版本号:主版本号.次版本号.补丁版本号, 以下这三种情况需要增加相应的版本号:
- 主版本号: 当API发生改变,并与之前的版本不兼容的时候
- 次版本号: 当增加了功能,但是向后兼容的时候
- 补丁版本号: 当做了向后兼容的缺陷修复的时候
npm使用一个名为package.json
的文件,用户可以通过npm install --save
命令把项目里所有的依赖项保存在这个文件里。
例如,运行npm install --save lodash
会将以下几行添加到package.json
文件中。
"dependencies": {
"lodash": "^4.17.4"
}
请注意,在版本号lodash之前有个^
字符。这个字符告诉npm,安装主版本等于4的任意一个版本即可。所以如果我现在运行npm进行安装,npm将安装lodash的主版本为4的最新版,可能是 lodash@4.25.5(@是npm约定用来确定包名的指定版本的)。你可以在此处查看所有支持的字符:https://docs.npmjs.com/misc/semver。
理论上&#