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

前端命令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的镜像:

npm config get registry 
npm config set registry https://registry.npm.taobao.org

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

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/
npm install -g pnpm

yarn

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

npm install -g yarn

npx

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

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

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

npx <package> <command>

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

npx create-react-app my-app

直接通过npm执行命令

npx npm <command>

常用命令

npm命令yarn等价命令pnpm 等价命令说明
npm installyarn installpnpm install安装项目的依赖项
npm install yarn add pnpm add 安装某个依赖,并且默认保存到package.json
npm uninstall yarn remove pnpm remove 移除某个依赖
npm run yarn run pnpm 运行某个命令
http://www.lryc.cn/news/144735.html

相关文章:

  • Linux 发行版 Debian 宣布支持龙芯 LoongArch 架构
  • PConv : Run, Don’t Walk: Chasing Higher FLOPS for Faster Neural Networks
  • Python中怎么解决内存管理的问题? - 易智编译EaseEditing
  • 【JavaEE】Spring事务-事务的基本介绍-事务的实现-@Transactional基本介绍和使用
  • CentOs下面安装jenkins记录
  • 海康威视相机-LINUX SDK 开发
  • AI助力智能安检,基于图像目标检测实现危险品X光智能安全检测系统
  • 开源软件的崛起:历史与未来
  • apk 静默安装
  • Unity记录4.2-存储-从json文件获取Tile路径
  • vue3页面传参?
  • NB水表和LoRa水表有哪些不同之处?
  • Java进阶(6)——抢购问题中的数据不安全(非原子性问题) Java中的synchronize和ReentrantLock锁使用 死锁及其产生的条件
  • SpringBoot初级开发--加入Log4j进行日志管理打印(6)
  • 计算机竞赛 基于GRU的 电影评论情感分析 - python 深度学习 情感分类
  • android logcat问题 怎么换成旧版
  • 监听的用法watch
  • XML—标记语言
  • 图数据库Neo4j学习五渲染图数据库neo4jd3
  • AI增强的社交网络·导师·电话客服……
  • c# Task异步使用
  • QuickLook概述和使用以及常用插件
  • 1A快恢复整流二极管型号汇总
  • 【element-ui】el-dialog改变宽度
  • 第三讲,实践编程 Eigen
  • POI实现百万数据导出
  • 如何制作党建专题汇报片
  • 沉浸式VR虚拟实景样板间降低了看房购房的难度
  • 如何在Linux环境下给Web应用配置HTTPS证书
  • 面试题-React(七):React组件通信