前端命令npm 、 cnpm、 pnpm、yarn 、 npx、nvm的区别

大名鼎鼎的npm(Node Package Manager)是随同NodeJS一起安装的包管理工具,NPM本身也是Node.js的一个模块。

npm的含义有两层:

  • npm服务器,npm服务器网址为https://www.npmjs.org,npm是 Node 包的标准发布平台,用于 Node 包的发布、传播;
  • npm包管理器,指在命令行窗口或终端使用npm命令来管理node包(模块),开发者可以使用npm命令下载、安装、升级、删除包等。

yarn 、 cnpm 、 npx 、 pnpm都是基于npm的包管理器,是基于npm包管理器的一些变种。解决了早期npm的一些缺点,例如下载速度慢,不能离线下载等。

nvm是Node.js版本管理器

cnpm

某些情况下我们没办法很好的从 https://registry.npmjs.org下载下来一些需要的包,cnpm是方便中国开发者下载依赖包而诞生的包管理工具.

可以直接设置npm的镜像:

bash 复制代码
npm config get registry 
npm config set registry https://registry.npm.taobao.org

也可以使用cnpm,并且将cnpm设置为淘宝的镜像

bash 复制代码
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm config get registry 

使用时只要把原来的npm改为cnpm即可

pnpm

解决了yarn、npm在多个项目安装同一个依赖时会下载重复文件的问题,避免磁盘的浪费,同时大大提升下载速度。

  • pnpm将依赖包存放在一个统一的位置
  • 对同一依赖包使用相同的版本,磁盘上只有这个依赖包的一份文件;
  • 同一依赖包需要使用不同的版本,仅有版本之间不同的文件会被存储起来;
  • 当安装软件包时,其包含的所有文件都会硬链接到此位置,不会占用额外的硬盘空间;
    pnpm的官网:https://pnpm.io/zh/
bash 复制代码
npm install -g pnpm

yarn

yarn解决了早期npm的一些问题比如:不支持离线模式、树形结构的依赖、依赖安装不确定性等。npm新版本基本上已经解决了自身的老毛病,目前yarn和npm没有很大区别。
https://www.yarnpkg.cn

bash 复制代码
npm install -g yarn

npx

npx是npm@5.2版本的一个命令。npx运行的时候,会到node_modules/.bin路径和环境变量$PATH里面,检查命令是否存在,存在则执行;不存在则下载到一个临时目录,使用以后再删除。

npx的作用:

  • 让项目内部安装的模块用起来更方便
  • 避免全局安装模块
  • 使用不同版本的 node
  • 执行 GitHub 源码
bash 复制代码
npx <command>

在不安装全局包的情况下执行命令时,可以使用以下命令

复制代码
npx <package> <command>

例如:要使用create-react-app创建一个新的React项目,我们可以使用以下命令:

复制代码
npx create-react-app my-app

直接通过npm执行命令

复制代码
npx npm <command>

常用命令

npm命令 yarn等价命令 pnpm 等价命令 说明
npm install yarn install pnpm install 安装项目的依赖项
npm install yarn add pnpm add 安装某个依赖,并且默认保存到package.json
npm uninstall yarn remove pnpm remove 移除某个依赖
npm run yarn run pnpm 运行某个命令
相关推荐
laoli_coding5 小时前
如何配置HTTPS站点访问的免费SSL域名证书
网络协议·https·node.js·ssl
To_OC5 小时前
手写 AI 编程 Agent 的命令执行工具:我被 child_process 坑出来的实战经验
后端·node.js·agent
胡萝卜术5 小时前
从API调用到手写LRU:力扣146「LRU缓存」的哈希表+双向链表终极进化之路
前端·javascript·面试
科技道人5 小时前
记录 默认置灰/禁用 app ‘Search Engine Selector‘ 的disable按钮
开发语言·前端·javascript
天疆说5 小时前
Zotero Connector 在 Edge 里找不到桌面 Zotero(Linux / Zotero 9.0.6 / Edge 150)
linux·前端·edge
李伟_Li慢慢7 小时前
02-从硬件说起WebGL
前端·three.js
kyriewen8 小时前
看了微软几万人用AI编程的数据——效率涨24%的代价没人提
前端·ai编程·claude
2601_963771378 小时前
How to Scale Your WordPress Store Traffic in 2026
前端·php·plugin
亿元程序员8 小时前
老板说我的3D箭头游戏用来做试玩太普通了,没人想玩,让我变点花样...
前端
李伟_Li慢慢8 小时前
01-threejs架构原理-课程简介
前端·three.js