命令pnpm 、nvm 、 npx和npm的区别?web前端开源许可证类型及区别?

210 阅读3分钟

下表展示了 pnpm 、nvm 、 npx和npm之间的区别:

对比一

特性pnpmnvmnpxnpm
安装包管理器
版本管理器
包执行器
适用于Node.jsNode.js任何命令行工具Node.js
安装包大小
安装速度
包格式flat mode(扁平模式)和 nested mode(嵌套模式)未指定特定格式未指定特定格式嵌套模式(nested mode)
版本兼容性管理支持支持不支持不支持
版本选择范围小(仅限于当前已安装的包版本)小(仅限于当前已安装的包版本)
版本切换速度
默认情况下在用户空间中运行是($HOME/.pnpm/store)是($HOME/.nvm)是($HOME/.cache/npx)是($HOME/.npm/registry)
集成度高高(支持 lockfile 和 package.json)中(支持 package.json)高(支持任何命令行工具)高(支持 lockfile 和 package.json)
适合开发环境使用场景多样,可适应不同项目需求,特别是在项目启动时可以快速切换不同依赖项版本,减少等待时间。✔️✖️✔️✖️
适合生产环境使用场景多样,可适应不同项目需求,特别是在项目启动时可以快速切换不同依赖项版本,减少等待时间。✔️✖️✖️✖️

对比二

对比项pnpmnvmnpxnpm
含义pnpm是解决yarn、npm在多个项目安装同一个依赖时会下载重复文件的问题,避免磁盘的浪费,同时大大提升下载速度的包管理工具。nvm是Node.js版本管理工具,可以让你在同一台机器上安装和切换不同版本的Node.js。npx主要是用来调用项目内部安装的模块。npm是Node.js的包管理工具。
功能pnpm将依赖包存放在一个统一的位置,对同一依赖包使用相同的版本,磁盘上只有这个依赖包的一份文件;同一依赖包需要使用不同的版本,仅有版本之间不同的文件会被存储起来。当安装软件包时,其包含的所有文件都会硬链接到此位置,不会占用额外的硬盘空间。nvm可以让你在同一台机器上安装和切换不同版本的Node.js,解决不同版本之间存在的不兼容现象。npx可以帮助你在不同的项目中调用同一个已经安装的模块,无需重复安装。npm主要用于安装和管理Node.js的模块和包,可以用于从npm仓库下载模块并安装到项目中。
用法安装pnpm:npm install -g pnpm安装nvm:curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh bash安装npx:随npm一起安装安装npm:随Node.js一起安装
优缺点pnpm的优点是避免重复下载文件,提高下载速度;缺点是在不同的项目中调用同一个模块时需要使用npx。nvm的优点是可以方便地切换不同版本的Node.js,解决版本兼容性问题;缺点是需要在不同项目中分别配置和使用。npx的优点是在不同的项目中调用同一个已经安装的模块,无需重复安装;缺点是在不同的项目中需要分别使用npx。npm的优点是广泛使用,社区成熟,可从npm仓库下载模块并安装到项目中;缺点是在下载速度和文件存储方面可能存在一些问题。

web前端开源许可证类型及区别?

开源许可证特点
BSD许可证可以自由使用、修改、再发布
MIT许可证可以自由使用、修改、再发布
Apache许可证允许商业使用、修改、再发布,但禁止使用商标和作者信息
GPL许可证主张代码及衍生代码的开源,不允许修改后和衍生的代码做为闭源的商业软件进行发布和出售
AGPL许可证AGPL是GPL的一个补充,在GPL的基础上加了一些限制