当前位置: 首页 > news >正文

浅谈npm,cnpm,pnpm,npx,nvm,yarn之间的区别

首先做一个基本的分类

名称描述
npm,cnpm,yarn,pnpm都是Javascript包管理器
nvm是Node.js版本控制器
npx命令行工具

I.npm,cnpm,yarn,pnpm

npm (Node Package Manager)

npm是Node.js默认的包管理器,随Node.js的安装会一起安装。使用npm可以安装,发布,管理javascript包

cnpm (China Node Package Manager)

        cnpm是由aliyun发布的包管理器,其用法和官方的npm一致,不同的是其使用的是中国的包镜像,官方的npm执行包下载使用的是境外服务器,国内访问速度慢,延迟高,cnpm的出现就是为了解决这一问题。

        当然,如果不想替换官方的npm,其实直接更改npm的镜像改为中国镜像也是可以的。

npm config set registry https://registry.npmmirror.com

        恢复源镜像命令

npm config set registry https://registry.npmjs.org/

CNPM官方介绍https://developer.aliyun.com/article/1599824

yarn (Yet Another Resources Manager)

        yarn 是由 Facebook 开发的另一个 JavaScript 包管理器。与 npm 不同,yarn 具有更快的下载速度和更稳定的依赖管理。它还引入了一些新的功能,如离线模式、并行安装等。yarn 使用与 npm 相同的包仓库,可以直接使用 npm 的包。

pnpm (Performant npm(高性能npm))   

        pnpm 是另一个 JavaScript 包管理器,与 npm 和 yarn 不同,它使用硬链接和符号链接来共享依赖项,从而节省磁盘空间。pnpm 还具有更快的安装速度和更低的网络流量消耗。它也可以使用 npm 的包仓库。

II.npx (Node Package Execute)

npx 是 npm 5.2.0 版本引入的一个命令行工具。它允许你在不全局安装包的情况下运行命令行工具。npx 可以直接运行安装在项目中的依赖包,而不需要手动设置环境变量或全局安装。

E.g.:

没有npx的时候 你想使用一个叫 create-react-app 的工具来创建一个 React 项目。你必须先全局安装它

npm install -g create-react-app

然后,再用这个工具

create-react-app my-app

有了npx,你就可以直接这样

npx create-react-app my-app

 

III. nvm (Node Version Manager)

nvm 是 Node Version Manager 的缩写,它是一个用于在同一台电脑上管理多个 Node.js 版本 的工具。你可以使用 nvm 在不同的项目中使用不同的 Node.js 版本来运行程序。

为什么需要 nvm?

有时候你会遇到这样的问题:

  • 项目 A 需要使用 Node.js v16.x
  • 项目 B 需要使用 Node.js v18.x
  • 项目 C 需要使用 Node.js v20.x

如果你只能安装一个版本的 Node.js,就会很不方便。这时候 nvm 就派上用场了!

http://www.dtcms.com/a/276443.html

相关文章:

  • Python 数据建模与分析项目实战预备 Day 3 - 特征工程基础与数据预处理(针对简历结构化数据)
  • 使用iso制作ubuntu22.04docker镜像
  • 处理日期与时间
  • 【嵌入式电机控制#13】PID参数整定的全面步骤
  • ClickHouse 25.6 版本发布说明
  • 【华为机试】HJ68 成绩排序
  • 从0设计一个短链接服务:如何实现尽可能短、可变长的短网址系统?
  • 过拟合 跷跷板 幻觉 混合精度
  • 计算机毕业设计springboot影视周边推荐系统 基于SpringBoot的电影衍生品智能推荐平台 JavaWeb实现的影视文化周边个性化服务系统
  • git版本发布
  • 黑客工具Nessus介绍及其安装使用教程
  • 使用Kali Linux hydra进行密码爆破(仅供学习)
  • 质量属性场景(Quality Attribute Scenario)深度解析
  • mybatis模糊匹配采用concat与#{},动态sql讲解
  • 模拟专家协作网络——重塑LLM专业内容生成
  • C语言基础知识--枚举
  • 商业智能(BI)系统深度解析
  • Matlab R2024b下载及详细安装教程,附中文免费Matlab安装包(含离线帮助文档)
  • 为什么一个 @Transactional 注解就能开启事务?揭秘 Spring AOP 的底层魔法
  • 维基艺术图片: python + scrapy 爬取图片
  • 【读书笔记】《C++ Software Design》第一章《The Art of Software Design》
  • 典型的前后端交互数据示例
  • 消息认证码(message authentication code)MAC
  • 自动编码器:深度学习的特征提取与数据压缩利器
  • c++11——移动语义的举例说明
  • 数据结构与算法:逆元、除法同余和容斥原理
  • 指令微调时,也要考虑提示损失
  • Linux - 安全排查 3
  • 用 MATLAB 模拟传染病传播:从 SI 模型到 SIS 模型的可视化之旅
  • 【无标题】基于拓扑膨胀-收缩对偶性(TED),TED原理构建任意维度TQCD模型并推演宇宙可能性的完整方案: