第Ⅰ章-IV npm yarn pnpm 包管理器

第Ⅰ章-Ⅰ 了解Vue3 创建一个Vue3项目
第Ⅰ章-Ⅱ Vue3自定义创建项目 项目文件详解
第Ⅰ章-III Vite 创建vue3 项目
第Ⅰ章-IV npm yarn pnpm 包管理器

第Ⅰ章-IV npm yarn pnpm 包管理器

  • 简介
  • npm
    • 工作原理
  • yarn
    • 工作原理
  • pnpm
    • 工作原理
  • 功能脚本
    • 添加依赖
    • 移除依赖
    • 安装所有依赖
    • 查看依赖信息
    • 缓存管理
    • 运行脚本
  • 切换源
    • 常用源

简介

它们用于帮助开发者管理项目中的依赖关系。

npm

随Node.js一起发布,因此得到广泛采用。

工作原理

npm 通过package.json文件管理项目的依赖。当你安装一个包时,npm会将包及依赖下载到node_modules目录中

  • 广泛的生态系统,有大量可用的包
  • 可能会出先重复包的问题,因为每个包可能会下载多个相同的子依赖。
    版本锁文件:package-lock.json

yarn

2016年Facebook(Meta)发布,作为npm的替代品。它解决了当时npm在版本锁定和网络性能方面的一些问题。

工作原理

也是用pacakge.json文件,并在安装依赖时生成一个yarn.lock文件,确保项目依赖的一致性。

  • 更快的安装速度和更好的依赖缓存机制。
  • 提供了并行安装机制,加快了包的安装过程。

版本锁文件:yarn.lock

pnpm

允许多个项目共享相同的包版本,而无需多次下载或存储。

工作原理

使用成为“硬链接”[^1]的方法来管理node_modules,允许多个项目共享相同的包版本,而无需多次下载或存储。

  • 高效存储管理,使用硬链接和符号链接减少重复数据的存储。
  • 更快的执行速度,在出现大量共享依赖。
  • 严格的依赖书管理。

版本锁文件:pnpm-lock.json

如果项目需要优化磁盘使用或有大量重复依赖 可以选择pnpm
如果你需要更快的依赖安装和稳定的依赖管理可以选择yarn

[^1]对文件系统中的实际文件的另一个引用或指针。硬链接与文件名的关系时多对一的关系。

功能脚本

添加依赖

npm install [package] / npm i [package]
yarn add [package]
pnpm pnpmadd [package]

移除依赖

npm uninstall [package]
yarn add [package]
pnpm add [package]

安装所有依赖

npm update [package]
yarn upgrade [package]
pnpm update [package]

查看依赖信息

npm info [package]
yarn info [package]
pnpm info [package]

缓存管理

npm cache clean --force
yarn cache clean
pnpm store prune

运行脚本

npm run [script]
yarn run [script]
pnpm run [script]

提示:npm 中run关键词在大多数情况下必须。yarn 允许执行脚本省略。pnpm允许你执行任何脚本时省略run.

切换源

npm config set registry 镜像
yarn config set registry 镜像
pnpm cconfig set registry 镜像

临时切换源

npm install [package] --registery 镜像
yarn add [package] --registery 镜像
pnpm add [package] --registery 镜像

常用源

  • 官方源:npm官方提供的默认源,地址是https://registry.npmjs.org/,但由于位于国外,速度较慢。

  • 淘宝源:由淘宝团队提供的镜像源,地址是https://registry.npm.taobao.org/,是国内服务器,因此速度较快。

  • 阿里源:由阿里巴巴提供的镜像源,地址是https://npm.aliyun.com/,同样是国内服务器,速度较快。

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

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

相关文章

Oracle23ai来了,23爱,全能、超级巨兽...

📢📢📢📣📣📣 作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验, Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主,全网粉丝10万 擅长主流Oracle、My…

[图解]关于SysML v2(1)大刀阔斧 对比 伪创新圈子

1 00:00:03,960 --> 00:00:08,270 OMG在2月份,这里写了4月 2 00:00:08,440 --> 00:00:13,530 应该是2月,发布了 3 00:00:13,870 --> 00:00:17,700 SysML v2的 beta 2版本 4 00:00:17,870 --> 00:00:19,780 也是当前最新的版本 5 00:00:2…

关于灰度发布

目录 一 来源 二 运行过程 三 适用范围 一 来源 灰度发布,也叫金丝雀发布,起源是,矿井工人发现,金丝雀对瓦斯气体很敏感,矿工会在下井之前,先放一只金丝雀到井中,如果金丝雀不叫了&#xff…

【DevOps】掌控云端:Google Cloud SDK 快速上手

一、Google Cloud SDK Google Cloud SDK (Software Development Kit) 是一组工具,包括 gcloud、gsutil 和 bq,用于通过命令行或自动化脚本访问和管理 Google Cloud 资源和服务。以下是 Cloud SDK 的详细介绍: 1、gcloud 命令行工具 gcloud 是 Cloud SDK 的核心组件,用于管理…

ES的脑裂现象

目录 0 集群结点的职责1 什么是脑裂现象2 造成脑裂现象的原因2.1 网络问题(最常见)2.2 主节点负载过大,资源耗尽,别的结点ping不到主节点2.3 主节点JVM内存回收时间过长导致 3 脑裂现象的解决方案3.1 局域网部署3.2 角色分离&…

主成分分析(PCA)学习

概述 主成分分析(Principal Component Analysis,PCA)是一种常用的数据降维方法,它通过线性变换将原始数据变换为一组各维度线性无关的表示,通常用于提取数据的主要特征分量。PCA 的目标是从原始数据中提取出最重要的特…

python实验一 简单的递归应用

实验一 实验题目 1、兔子繁殖问题(Fibonacci’s Rabbits)。一对兔子从出生后第三个月开始,每月生一对小兔子。小兔子到第三个月又开始生下一代小兔子。假若兔子只生不死,一月份抱来一对刚出生的小兔子,问一年中每个月各有多少只兔子。 &…

[每日AI·0501]GitHub 版 Devin,Transformer的强力挑战者 Mamba,Sora 制作细节与踩坑,OpenAI 记忆功能

AI 资讯 国资委:加快人工智能等新技术与制造全过程、全要素深度融合GitHub版 Devin 上线,会打字就能开发应用,微软 CEO:重新定义 IDE在12个视频理解任务中,Mamba 先打败了 TransformerSora 会颠覆电影制作吗&#xff…

(delphi11最新学习资料) Object Pascal 学习笔记---第11章 ( 接口)

第11章 接口 ​ 与C及其他语言不同,Object Pascal不支持多重继承,这意味着每个类只能有一个单一的基类。 ​ 多重继承的实用性是面向对象编程专家争论的议题之一。Object Pascal中缺少多重继承可以被看做一种劣势,因为您没有C的功能强大&am…

Go实现 - 树莓派自己烧录自己 之 多读卡器同时烧录

简介 Go实现 监控读卡器设备存储空间变化, 自动烧写SD Card, 烧写完成之后自动弹出, 显示执行状态, 还支持热插拔。 步骤 代码 lsblkParser.go imageWriter.go package actionimport ("fmt""os/exec" )ty…

Oracle 23c? No Oracle 23ai

昨天 Oracle 发布了最新的Oracle版本。出乎意料的是这个版本从Oracle 23c 更名为 Oracle 23ai ,似乎预示着Oracle的掌舵人Larry也要全面拥抱AI技术浪潮了。 23ai版本主要功能介绍: Oracle Database 23ai 是 Oracle 数据库的下一个长期支持版本。它包括 300 多项新功…

【LeetCode刷题】410. 分割数组的最大值

1. 题目链接2. 题目描述3. 解题方法4. 代码 1. 题目链接 410. 分割数组的最大值 2. 题目描述 3. 解题方法 题目中提到的是某个和的最大值是最小的,这种题目是可以用二分来解决的。 确定区间,根据题目的数据范围,可以确定区间就是[0, 1e9]…

LEETCODE LCR 041. 数据流中的移动平均值

class MovingAverage:def __init__(self, size: int):"""Initialize your data structure here."""self.sizesize1self.front0self.rear0self.queue[None for _ in range(size1)]self.sum0def next(self, val: int) -> float:# 满了if (self.…

postman中百度preview无法加载的解决方案

问题 在使用postman关联时,百度接口与天气接口已使用glb_city关联,但在百度接口发送请求时,发现preview无法加载 解决方案 1、进入百度 百度全球领先的中文搜索引擎、致力于让网民更便捷地获取信息,找到所求。百度超过千亿的中…

汉译英早操练-(二十七)

hello,汉语在表达成英语的时候你是否有困惑。不要着急,一起来看看需要我们注意一些什么,慢慢的就不恐惧用英语表达汉语这件事了。给大家奉献系列文章,供大家参考学习。 往期回顾在这里,请随便点击过去查看,…

LeetCode面试298,二叉树最长连续序列(Python)

开始想着dfs,两种情况 1.以root为根 2.不以root为根 但是这样需要两个dfs分别进行,那么时间复杂度就上去了。 class Solution:def longestConsecutive(self, root: Optional[TreeNode]) -> int:def dfs(root):# 以root为根节点,可以延…

绕过Microsoft登录:安装Windows 11 23H2的两种方法

摘要 本文提供了两种在安装Windows 11 23H2版本时绕过Microsoft账户登录的方法,使用户能以本地账户的身份设置和使用电脑。第一种方法是通过选择“注册工作或学校账户”进行域加入式设置;第二种方法是利用系统登录错误允许的机制,通过多次输…

leetCode68. 文本左右对齐

基本思路&#xff1a; leetCode68. 文本左右对齐 代码 class Solution { public:vector<string> fullJustify(vector<string>& words, int maxWidth) {vector<string> res;for(int i 0; i < words.size(); i){ // 枚举有多少个单词int j i 1; //…

MATLAB中自定义栅格数据地理坐标R,利用geotifwrite写入tif

场景描述&#xff1a; 有时候将nc格式的数据转成tiff&#xff0c;或者是将一个矩阵输出成带有地理坐标信息tiff数据时&#xff0c;常常涉及到空间参考的定义和geotiffwrite()函数。 问题描述&#xff1a; 以全球数据为例&#xff0c;今天发现在matlab中对矩阵进行显示后&…

苹果可能将OpenAI技术集成至iOS/iPadOS 18

&#x1f989; AI新闻 &#x1f680; 苹果可能将OpenAI技术集成至iOS/iPadOS 18 摘要&#xff1a;苹果正在与OpenAI就将GPT技术部署在iOS/iPadOS 18中进行谈判。这项技术被视为可能增强的Siri功能&#xff0c;即“AI聊天机器人”。除Siri外&#xff0c;新技术还可能改善Spotl…