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

浅谈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.xdnf.cn/news/15353.html

相关文章:

  • 周末总结(2024/07/12)
  • 小架构step系列12:单元测试
  • 为什么有些PDF无法复制文字?原理分析与解决方案
  • 知识宇宙-思考篇:AI大模型如何重塑软件开发流程?
  • MCP选型指南:AWS vs Azure vs GCP vs 国内云厂商深度对比
  • openGauss 的列式存储表时遇到的排序和聚合查询性能问题
  • mybatis模糊匹配采用concat与#{},动态sql讲解
  • Flutter、React Native、Uni-App 的比较与分析
  • 80. 删除有序数组中的重复项 II
  • brpc中bthread_start_urgent和tls_task_group详细机制分析
  • 使用python 实现一个http server
  • 传感器WSNs TheDataLinkLayer——X-MAC
  • 基于随机森林的金融时间序列预测系统:从数据处理到实时预测的完整流水线
  • [特殊字符] 实时数据洪流突围战:Flink+Paimon实现毫秒级分析的架构革命(附压测报告)——日均百亿级数据处理成本降低60%的工业级方案
  • 【离线数仓项目】——电商域DWS层开发实战
  • 使用FastAdmin框架开发
  • 蒙特卡洛树搜索方法实践
  • 【云端深度学习训练与部署平台】AutoDL连接VSCode运行深度学习项目的全流程
  • C# 接口(派生成员作为实现)
  • 钉钉企业应用开发实战:从零构建组织级业务工具
  • MySQL 内外连接
  • monorepo 发布库 --- 打包文件
  • 线程属性设置全攻略
  • 深入详解:决策树在医学影像脑部疾病诊断中的应用与实现
  • 构建AI Agent的完整实战指南:从邮件助手案例看6步落地方法
  • 幸福的蓝图——搭建你的“快乐与意义”金字塔
  • AI 助力编程:Cursor Vibe Coding 场景实战演示
  • 分音塔科技(BABEL Technology) 的公司背景、股权构成、产品类型及技术能力的全方位解读
  • 部署Harbor私有仓库
  • 自动化证书续签工具针对VPS服务器HTTPS服务的维护实践