彻底了解 npm、cnpm、pnpm 、yarn几种包管理工具

news2024/12/24 0:13:01

npm、cnpm、pnpm 、yarn几种包管理工具

  • npm
  • cnpm
  • yarn
  • pnpm
  • 四者的优缺点:

npm

npm 是 Node.js 自带的包管理器,平时通过 npm install 命令来安装各种 npm 包(比如:npm install vue-router ),就是通过这个包管理器来安装的。
npm属于node的一个管理工具,所以我们需要先安装Node,成功安装Node的过程会自动安装npm工具。

cnpm

cnpm(淘宝 NPM)是一个国内的镜像源,它是 npm 的一个定制版。由于 npm 在国内的访问速度较慢,cnpm 通过将 npm 的镜像源改为淘宝源,提供更快的软件包下载速度。cnpm 与 npm 命令完全兼容,可以直接用 cnpm 替代 npm 使用。

它的安装命令和 npm 非常一致, 以后安装直接采用cpm替代npm,通过 cnpm install 命令来安装(比如 cnpm install vue-router)。

在使用它之前,需要通过 npm 命令进行全局安装cnpm:

npm install -g cnpm
# 或者
npm install -g cnpm --registry=https://registry.npmmirror.com
# 查看npm镜像
npm config get registry
# 我们可以直接设置npm的镜像
npm config set registry https://registry.npm.taobao.org

yarn

yarn 也是一个常用的包管理工具,和 npm 十分相似, npmjs 上的包,也会同步到 yarnpkg 。
也是需要全局安装才可以使用:

npm install -g yarn

但是安装命令上会有点不同, yarn 是用 yarn add 代替 npm install ,用 yarn remove 代替 npm uninstall ,例如:

# 安装单个包
yarn add vue-router

# 安装全局包
yarn global add typescript

# 卸载包
yarn remove vue-router

而且在运行脚本的时候,可以直接用 yarn 来代替 npm run ,例如 yarn dev 相当于 npm run dev 。

升级的时候用 yarn upgrade 代替 npm update命令。
yarn 默认绑定的是 https://registry.yarnpkg.com 的下载源,如果包的下载速度太慢,也可以配置镜像源,但是命令有所差异:

# 查看镜像源
yarn config get registry

# 绑定镜像源
yarn config set registry https://registry.npmmirror.com

# 删除镜像源(注意这里是 delete )
yarn config delete registry

pnpm

pnpm 是包管理工具的一个后起之秀,主要优点在于快速的、节省磁盘空间,如果你的包在一个项目中已经下载了,其它项目再用到这个包就不需要再次下载,而是通过软链接的方式关联。用法跟其他包管理器很相似,没有太多的学习成本, npm 和 yarn 的命令它都支持。
也是必须先全局安装它才可以使用:

npm install -g pnpm

目前 pnpm 在开源社区的使用率越来越高,包括接触最多的 Vue / Vite 团队也在逐步迁移到 pnpm 来管理依赖。
pnpm 的下载源使用的是 npm ,所以如果要绑定镜像源,按照 npm 的方式处理就可以了。

四者的优缺点:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/970815.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于OpenEuler的信创国产瘦客户机软件系统 DoraOS

DoraOS是一款瘦客户机系统软件,最新版本基于OpenEuler开发。可以将主机转化为专业的瘦客户机。目前支持x86架构的硬件。 软件下载地址为: https://www.doracloud.cn/downloads/32-cn.html 制作一张启动U盘,即可进行安装。 DoraOS的连接窗口…

3D数据导出工具HOOPS Publish:3D数据查看、生成标准PDF或HTML文档!

HOOPS中文网http://techsoft3d.evget.com/ 一、3D导出SDK HOOPS Publish是一款功能强大的SDK,可以创作丰富的工程数据并将模型文件导出为各种行业标准格式,包括PDF、STEP、JT和3MF。HOOPS Publish核心的3D数据模型是经过ISO认证的PRC格式(ISO 14739-1:…

【UIPickerView案例04-随机点餐完善 Objective-C语言】

一、之前我们讲到哪里 1)首先,是搭建界面 2)然后呢,是加载数据 先把这个数据文件,拖进来,然后呢,设置它的代理对象、数据源对象 然后呢,在控制器里面,遵守对应的协议, 实现对应的方法 跟TableView的思路,一样一样的, 也是,把多少行返回 把多少组,返回 然后呢…

【python爬虫】12.建立你的爬虫大军

文章目录 前言协程是什么多协程的用法gevent库queue模块 拓展复习复习 前言 照旧来回顾上一关的知识点!上一关我们学习如何将爬虫的结果发送邮件,和定时执行爬虫。 关于邮件,它是这样一种流程: 我们要用到的模块是smtplib和emai…

WordPress Page Builder KingComposer 2.9.6 Open Redirection

WordPress Page Builder KingComposer 2.9.6 Open Redirection WordPress 插件 KingComposer 版本2.9.6 以及以前版本受到开放重定向漏洞的影响。该漏洞在packetstorm网站披露于2023年7月24日,除了该漏洞,该版本的插件还存在XSS攻击的漏洞风险 图1.来自…

【无源谐波滤波器通常用于电力系统中的谐波抑制】用于抑制电力系统谐波的无源谐波滤波器(Simulink实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

十年AI技术成果加持,猿辅导带你体验网课中的科技感

近年来,AI正以润物细无声的方式重塑多个行业的面貌,教育行业也不例外。同时,随着Chat GPT对社会带来的冲击不断加强,AI教育已经成为整个行业不可逆转的趋势。作为最早踏入智能教育领域的企业之一,猿辅导深谙技术革新对…

揭秘大企业的在线帮助中心搭建都有什么技巧?

大企业的在线帮助中心是为了提供更好的客户支持和服务而设立的一个重要平台。一个优秀的在线帮助中心可以帮助企业有效地解决客户问题、提高客户满意度,并且节省人力资源。 搭建大企业在线帮助中心的技巧: 设计用户友好的界面:在线帮助中心…

OPPO手机便签数据搬家到华为mate60Pro手机怎么操作

今年8月底,华为上线了本年度的旗舰手机——华为mate60Pro。有不少网友都在抢购这台手机,不过在拿到新手机之后,还有一件重要的事情要做,这就是把旧手机中比较重要的数据,例如图片、短信、通讯录、联系人、便签等数据搬…

13 PyQt5控件之QTreeWidget

目录 1 官方帮助文档2 基本使用3 模型事件 1 官方帮助文档 QTreeWidget Qt5.15帮助文档 2 基本使用 #!/usr/bin/python3 # -*- coding: GBK -*-import sys from PyQt5.QtCore import QSize from PyQt5.QtGui import QIcon from PyQt5.QtWidgets import *class QTreeWidgetDe…

计算机毕设之基于python+django+mysql数据可视化的智慧社区内网平台(包含文档+源码+部署教程)

系统阐述的是一款基于数据可视化的智慧社区内网平台的设计与实现,对于Python、B/S结构、MySql进行了较为深入的学习与应用。主要针对系统的设计,描述,实现和分析与测试方面来表明开发的过程。开发中使用了 django框架和MySql数据库技术搭建系…

xxl-job 任务调度搭建及简单使用

xxl-job是开源架构,可以通过它实现调度中心和执行器。 git地址和 官网中进行了详细的技术说明。   xxl-job支持单机部署和集群式部署,在集群式部署中又可以实现调度中心集群式部署和执行器集群式部署。本文主要针对调度中心和执行器分离单机部署方式进…

因为axios请求后端,接收不到token的问引出的问题

vue axios请求后端接受不到token的问题。 相关概念 什么是跨域? 跨域指的是在浏览器环境下,当发起请求的域(或者网站)与请求的资源所在的域之间存在协议、主机或端口中的任何一个条件不同的情况。换句话说,只要协议、…

java八股文面试[JVM]——如何打破双亲委派模型

双亲委派模型的第一次“被破坏”是重写自定义加载器的loadClass(),jdk不推荐。一般都只是重写findClass(),这样可以保持双亲委派机制.而loadClass方法加载规则由自己定义,就可以随心所欲的加载类,典型的打破双亲委派模型的框架和中间件有tomc…

基于Java的ssm高校教学业绩信息管理系统源码和论文

基于Java的ssm高校教学业绩信息管理系统源码和论文122 开发工具:idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 技术:ssm 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存…

如何使用Windows Xshell连接另外一台主机上的虚拟机解决方案

前言 我需要使用我自己的笔记本打开虚拟机服务,如何使用我的台式电脑进行服务访问 环境: 台式:Windows10 笔记本:Windows10 网络是由笔记本开放热点,在同一局域网下 正文 首先我们先要看,我们所需要的虚拟…

Python中重要的条件语句教程

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 一. 了解条件语句 假设一个场景: 同学们这个年龄去过网吧吗? 去网吧进门想要上网必须做的一件事是做什么?(考虑重点) 为什么要把身份证给工作人员&#xf…

【广州华锐互动】利用AR远程指导系统进行机械故障排查,实现远程虚拟信息互动

随着工业自动化和智能化的不断发展,机械故障诊断已经成为了工业生产中的重要环节。为了提高故障诊断的准确性和效率,近年来,AR(增强现实)远程协助技术逐渐应用于机械故障诊断领域。本文将探讨AR远程协助技术在机械故障…

【方案】智慧园区:AI与视频融合技术如何助力园区监管智能化升级?

一、行业背景 随着科技的不断发展,人工智能(AI)技术正在各个领域迅速应用和推广。其中,智慧园区是一个重要的应用场景,它通过AI技术的支持,实现了园区的智能化管理和高效运营。 1、园区管理智慧化升级需求…

大数据成为市场营销利器 ,促进金融贷款企业获客精准化

随着大数据技术的不断普及,中国对尖端技术和云计算技术的投资大幅增加。大数据、云计算技术、物联网等一系列新一代信息技术也加速完善。 目前,大数据技术也非常成熟,大数据的应用领域也多种多样。大数据的重要方面“运营商大数据”已经被政…