关键词:
大家好,今天总结了一下Yarn这个包管理工具的使用,虽然Npm 已经奠定了前端工程基础,但是追求完美的前端程序员们又基于 Npm 不足的地方,提供了新的完善思路,针对如 Npm 安装包的速度问题,包的版本问题加以改善。所以今天我们要学习的 Yarn 就是用来解决这些问题的。
一.Yarn简介
了解前端开发的人可能会习惯于使用 npm
或者cnpm
作为我们项目的包管理工具,它们在给我们的日常开发带来便利的同时,也伴随着,如:安装慢、无法保持包的一致性等让开发者头疼的问题,于是作为npm
的直接竞争对手 Yarn 诞生了。
yarn有如下的三个优点:
速度快: Yarn 缓存了每个下载过的包,再次使用时无需重复下载。同时它是并行的,因此安装速度更快
安全: 在执行代码之前,Yarn 会通过算法校验每个安装包的完整性。
可靠: 使用详细、简洁的锁文件格式和明确的安装算法,使 Yarn 能够在不同系统上保证无差异的工作。
可以总结出:Yarn 是基于 Npm 的不足之处做出了全新的改版升级,但是我们并不能说 Yarn 的出现会完全取代 Npm,因为目前的 Yarn ,只是完善升级了 Npm,让开发者们有了更好的体验,但截至目前为止,Yarn 并没有实现全部的 Npm 命令及功能。
Yarn 和 npm 能否同时使用?
答:可以同时使用,上文提到,yarn 是对 npm 进行了安装和提升,实现了npm大部分的命令和功能,且二者都遵循 package.json 文件,所以我们也不用担心兼容问题,yarn 完全没有侵入性。我本人在实际运用场景中,也经常使用 yarn 在安装或删除依赖文件,使用 npm 运行项目中定义的如:启动命令,打包命令等,所以二者完全可以同时使用。
二.Yarn的安装和命令
1. 安装Yarn
yarn 有很多种安装方式,对于不同的系统,我们可以区别安装,但在这里我推荐大家使用 Npm 去安装,这种方法最方便简洁。
前提是你安装好了Node.js,你可以运行如下的命令来安装:
npm i -g yarn
2. Yarn的使用方法
现在 Yarn 已经 安装完毕,可以开始使用了。 以下是一些你需要的最常用的命令。
(1) 新建项目
yarn init
运行后,会在项目里面生成package.json
文件。这和npm的初始化一模一样。
(2) 添加依赖
yarn add [package]
yarn add [package]@[version]
yarn add [package]@[tag]
将依赖项添加到不同依赖项类别中
yarn add [package] --dev
yarn add [package] --peer
yarn add [package] --optional
devDependencies、peerDependencies 和 optionalDependencies的区别:
在一个Node.js项目中,package.json几乎是一个必须的文件,它的主要作用就是管理项目中所使用到的外部依赖包,同时它也是npm命令的入口文件。
npm目前支持以下几类依赖包管理:
dependencies
应用依赖,或者叫做业务依赖,这是我们最常用的依赖包管理对象!它用于指定应用依赖的外部包,这些依赖是应用发布后正常执行时所需要的,但不包含测试时或者本地打包时所使用的包。
devDependencies
开发环境依赖,仅次于dependencies的使用频率!它的对象定义和dependencies一样,只不过它里面的包只用于开发环境,不用于生产环境,这些包通常是单元测试或者打包工具等,例如gulp, grunt, webpack等。
optionalDependencies
可选依赖,如果有一些依赖包即使安装失败,项目仍然能够运行或者希望npm继续运行,就可以使用optionalDependencies。另外optionalDependencies会覆盖dependencies中的同名依赖包,所以不要在两个地方都写。
bundledDependencies / bundleDependencies
打包依赖,bundledDependencies是一个包含依赖包名的数组对象,在发布时会将这个对象中的包打包到最终的发布包里
peerDependencies
同等依赖,或者叫同伴依赖,用于指定当前包(也就是你写的包)兼容的宿主版本。如何理解呢? 我们可以试想一下,我们编写一个gulp的插件,而gulp却有多个主版本,我们只想兼容最新的版本,此时就可以用同等依赖(peerDependencies)来指定。
(3) 升级依赖包
yarn upgrade [package]
yarn upgrade [package]@[version]
yarn upgrade [package]@[tag]
(4) 移除依赖包
yarn remove [package]
(5) 安装项目的全部依赖
这个命令和npm的npm install 命令的用法完全一致。
yarn
或
yarn install
3. npm和yarn的命令对照
通过以上图可得,虽然 yarn 并没有实现 Npm 所有的命令功能,但是目前已经可以满足绝大多数开发场景了。
4. Yarn 的命令汇总
命令 | 命令解释 |
---|---|
yarn add | 添加依赖 |
yarn audit | 对已安装的软件包执行漏洞审核 |
yarn autoclean | 从程序包依赖项中清除并删除不必要的文件 |
yarn bin | 显示依赖bin文件夹的位置 |
yarn cache | 管理用户目录中的依赖缓存 |
yarn check | 验证当前项目中程序包依赖项 |
yarn config | 管理依赖配置文件 |
yarn create | 创建Yarn工程 |
yarn dedupe | 删除重复的依赖 |
yarn generate-lock-entry | 生成Yarn锁文件 |
yarn global | 在全局安装依赖 |
yarn help | 显示Yarn的帮助信息 |
yarn import | 迁移当前依赖的项目package-lock.json |
yarn info | 显示有关依赖的信息 |
yarn init | 初始化工程并创建package.json文件 |
yarn install | 用于安装项目的所有依赖项 |
yarn licenses | 列出已安装依赖的许可证及源码url |
yarn link | 链接依赖文件夹 |
yarn list | 列出已安装的依赖 |
yarn login | 存储您在 registry 上的用户名和 email |
yarn logout | 清除你在 registry 上用户名和 email |
yarn outdated | 列出所有依赖项的版本信息 |
yarn owner | 展示依赖作者 |
yarn pack | 创建依赖项的压缩gzip |
yarn policies | 规定整个项目中执行Yarn的版本 |
yarn publish | 将依赖发布到npm注册表 |
yarn remove | 删除依赖 |
yarn run | 运行定义的程序脚本命令 |
yarn tag | 在依赖上添加,删除或列出标签 |
yarn team | 管理组织中的团队,并更改团队成员身份 |
yarn test | 运行程序的test命令 |
yarn upgrade | 将指定依赖升级为最新版本 |
yarn upgrade-interactive | 更新过期依赖的简便方法 |
yarn version | 展示依赖版本信息 |
yarn versions | 展示所有依赖项版本信息 |
yarn why | 显示有关为什么安装依赖的信息 |
yarn workspace | Yarn的工作区信息 |
yarn workspaces | Yarn的所有工作区信息 |
5. npm 和 yarn混合使用
在平时的开发中,尤其是一些相对较老的项目,我们是通常是使用npm来初始化项目的。那现在我们想使用yarn,是不是就要重新搭建环境,或者改动很多配置呢?答案是no,我们不需要做什么改动,因为它们都遵循着同一个配置文件 package.json
的规范,我们可以直接在npm的基础上使用yarn,也能完美运行。
篇尾总结:近几年前端发展的越来越快,相关的工具也越来越多。关于项目中具体选用哪种依赖管理工具,是由项目本身的特点,结合我们自身的使用经验去决定的。作为开发者,希望大家可以多了解一些工具的使用方法和特性,到时候真正使用的时候才会得心应手。我在这里求一个关注、点赞、收藏、评论。拜托了,这对我真的很重要!
pnpm(代码片段)
Prerequisite之前在VUE3中提到了npm,是一个NodeJS包管理和分发工具,但其实还有yarn和pnpm等包管理工具,而且pnpm比传统方案(yarn,npm)安装包的速度快了两倍,因此本篇来介绍pnpm官方网站:pnpm下载命令:npminstall-gpnpm【前置是已经... 查看详情
yarn的安装和使用(代码片段)
...tails/81354533yarn的简介:Yarn是facebook发布的一款取代npm的包管理工具。yarn的特点:速度超快。Yarn缓存了每个下载过的包,所以再次使用时无需重复下载。同时利用并行下载以最大化资源利用率,因此安装速度更快。超级安全。在... 查看详情
yarn的安装和简单使用(代码片段)
yarn的安装和简单使用yarn是一款取代npm的包管理工具yarn的优点速度超快。Yarn缓存了每个下载过的包,所以再次使用时无需重复下载。同时利用并行下载以最大化资源利用率,因此安装速度更快。超级安全。在执行代码之前,Yarn... 查看详情
yarn依赖管理工具的使用(代码片段)
Yarn是Facebook发布的一款依赖管理工具,它比npm更快、更高效。与NPM命令对照npminstall=>yarninstallnpminstall--save[package]=>yarnadd[package]npminstall--save-dev[package]=>yarnadd[package]--devnpminstall--global[package]= 查看详情
初始webpack(代码片段)
初始webpack学习webpack之前的准备yarn包管理器(必须)下载yarn使用yarn1.webpack基本概念webpack能做什么2.webpack的使用步骤2.0_webpack基础使用2.1_webpack更新打包3.webpack的配置3.0_webpack-入口和出口3.1_打包流程图3.2_插件-自动生成html文件3.3_加... 查看详情
一个比npm更快更安全可靠的javascript包管理工具——yarn(代码片段)
...e/details/54950018转载请添加该地址】上一篇简单介绍了NPM包管理工具在这篇文章中我想给大家介绍一个取代使用NPM的包管理工具——Yarn以及它与NPM之间的差异#简介这个就是Ya 查看详情
yarn命令总结
...你卸载了)</small>,但是@vue/cli『默认使用NPM作为包管理器』。:::tip如何知道我的vue-cli是使用NPM作为包管理器的?当你使用vuecreatexxx创建vue项目结束后看到如下信息,那么毫无疑问vue-cli使用的就是NPM::::如果有需要,你可以... 查看详情
[linux]ubuntu下yarn依赖管理工具的安装和使用
Yarn对你的代码来说是一个包管理器,你可以通过它使用全世界开发者的代码,或者分享自己的代码。Yarn做这些快捷、安全、可靠,所以你不用担心什么。通过Yarn你可以使用其他开发者针对不同问题的解决方案,使自己的开发过... 查看详情
yarn(代码片段)
...你无需理解此文件的具体内容,但请记得将其提交到代码管理系统。当其他开发者也从np 查看详情
[yarn]yarn和npm的对比
一.简介NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:允许用户从NPM服务器下载别人编写的第三方包到本地使用。允许用户从NPM服务器下载并安装别人编写的命令行程序... 查看详情
win10平台yarn工具的安装与环境配置(代码片段)
...n是由Facebook、Google、Exponent和Tilde联合推出了一个新的JS包管理工具,正如官方文档中写的,Yarn是为了弥补npm的一些缺陷而出现的。yarn和npm一样,都可以用来添加和删除某个软件包,但yarn比npm安装软件包的速度更... 查看详情
yarn的优势(代码片段)
...-gyarn//特定版本号升级npminstallyarn@1.19.2-g2、基本命令yarn包管理器与npm类似:列出所有包和它们的依赖:yarnlist[--depth][--pattern] 运行脚本:yarnrun[script][<args>] 查看详情
npm包管理工具(代码片段)
NPM包管理工具NPM全程是NodePackageManager,他是JavaScript的包管理工具,是Node.js平台默认的包管理工具,通过NPM可以安装、共享、分发代码、管理项目依赖关系。可以从NPM服务器下载别人编写的第三方包到本地。可以从NPM服务器下载... 查看详情
.net使用一行命令轻松生成efcore项目框架(代码片段)
dotnetef是EntityFrameworkCore(EFCore)的一个命令行工具,用于管理EFCore应用程序的数据库和代码。除了提供管理数据库的命令之外,dotnetef还可以生成和管理实体和上下文代码。本文将介绍如何使用dotnetef动态生成代码。一、环境准... 查看详情
yarn使用以及和npm对比(代码片段)
yarn是facebook发布的一款取代npm的包管理工具。 yarn的特点:速度超快。Yarn缓存了每个下载过的包,所以再次使用时无需重复下载。同时利用并行下载以最大化资源利用率,因此安装速度更快。超级安全。在执行... 查看详情
包管理工具深度解析(代码片段)
包管理工具深度解析包管理工具npm项目配置文件package.json项目配置文件package-lock.json版本管理规范npm常用命令npminstall原理(非常重要)局部命令执行方案包管理工具npm包管理工具npm:NodePackageManager,Node包管理工具... 查看详情
npmcnpmyarn三剑客(代码片段)
...版本。引自npm中文网npm(nodepackagemanager)是JavaScript世界的包管理工具,是Node.js平台的默认包管理工具,是前端模块化下的一个标志性产物,简单地说,就是通过npm下载模块,复用已有的代码,提高工作效率。下面是关于npm的快速... 查看详情
linux环境基础开发工具使用(代码片段)
目录:Linux软件包管理器yum什么是软件包关于rz、sz查看软件包如何安装软件如何卸载软件总结:Linux开发工具---编辑器vim使用1.vim的基本概念2.vim的基本操作3.vim正常模式命令集4.vim末行模式命令集5.vim操作总结6.简单vim配置... 查看详情