第Ⅰ章-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 镜像 ### 常用源 * 官方源:npm官方提供的默认源,地址是https://registry.npmjs.org/,但由于位于国外,速度较慢。 * 淘宝源:由淘宝团队提供的镜像源,地址是https://registry.npm.taobao.org/,是国内服务器,因此速度较快。 * 阿里源:由阿里巴巴提供的镜像源,地址是https://npm.aliyun.com/,同样是国内服务器,速度较快。

相关推荐
小目标一个亿43 分钟前
Windows平台Nginx配置web账号密码验证
linux·前端·nginx
rocky1911 小时前
网页版时钟
前端·javascript·html
Aotman_1 小时前
Element-UI Message Box弹窗 使用$confirm方法自定义模版内容,修改默认样式
linux·运维·前端
计算机程序设计小李同学1 小时前
基于SSM框架的动画制作及分享网站设计
java·前端·后端·学习·ssm
一只小阿乐2 小时前
vue-web端实现图片懒加载的方
前端·javascript·vue.js
牛马1112 小时前
Flutter 多语言
前端·flutter
by————组态2 小时前
集成详细说明
前端·物联网·信息可视化·组态·组态软件
我是小疯子663 小时前
jQuery快速入门指南
前端
傻啦嘿哟3 小时前
Python中的@property:优雅控制类成员访问的魔法
前端·数据库·python
这个图像胖嘟嘟3 小时前
前端开发的基本运行环境配置
开发语言·javascript·vue.js·react.js·typescript·npm·node.js