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

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

第Ⅰ章-IV 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 镜像

常用源

相关推荐
南京兴帝文化传媒有限公司5 分钟前
地图SEO与AI搜索优化结合实践:宁国摄影工作室本地获客案例分析
大数据·前端·人工智能·geo 优化·geo优化避坑
用户9210802628612 分钟前
前端 Vue 专栏 07:模板编译、虚拟 DOM、Diff 与 key
前端
光影少年15 分钟前
react navite process.nextTick 和 Promise.then 的执行顺序
前端·react native·react.js
雪芽蓝域zzs17 分钟前
第四十二节:全局字典封装(后端字典,下拉选择复用)
开发语言·前端·javascript
用户645965987108819 分钟前
Nginx + Vue Router 基础:SPA History 部署、反向代理与请求分流
前端
样子201819 分钟前
Js 之根据白名单过滤 HTML(防止 XSS 攻击)
android·前端·javascript·html·xss
lewis_lk22 分钟前
ReactJs状态迷思:从"常量"到"闭包陷阱"的底层逻辑
前端·react.js
尘世中一位迷途小书童23 分钟前
在 Cesium 上画全球网格:我们怎么把 GeoSOT 接到瓦片调度上
前端·javascript·前端框架
aixingpan29 分钟前
aixingpan.cn API开发文档:api_docs_trichart_natal_progression_ter_transit2接口指南
前端·php
liuyt202239 分钟前
【javaweb】day3
前端