前端命令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 运行某个命令
相关推荐
大飞记Python19 分钟前
部门管理|“编辑部门”功能实现(Django5零基础Web平台)
前端·数据库·python·django
tsumikistep1 小时前
【前端】前端运行环境的结构
前端
你的人类朋友1 小时前
【Node】认识multer库
前端·javascript·后端
Aitter1 小时前
PDF和Word文件转换为Markdown的技术实现
前端·ai编程
mapbar_front2 小时前
面试问题—上家公司的离职原因
前端·面试
昔人'3 小时前
css使用 :where() 来简化大型 CSS 选择器列表
前端·css
昔人'3 小时前
css `dorp-shadow`
前端·css
流***陌3 小时前
扭蛋机 Roll 福利房小程序前端功能设计:融合趣味互动与福利适配
前端·小程序
烛阴4 小时前
用 Python 揭秘 IP 地址背后的地理位置和信息
前端·python
前端开发爱好者4 小时前
尤雨溪官宣:"新玩具" 比 Prettier 快 45 倍!
前端·javascript·vue.js