• 慕课网首页
  • 免费课
  • 实战课
  • 体系课
  • 发现
    评价 教程 专栏 手记
  • 商业合作
    企业服务 讲师入驻
搜索

热搜

最近搜索 清空

我的购物车

已加入门课程

购物车里空空如也

快去这里选购你中意的课程

实战课

体系课

我的订单中心
去购物车
  • 登录 / 注册
  • 新人专属0元礼包 | 查看
抱歉,未找到你想要查询的结果
全部开发者教程

Yarn 入门教程

依赖管理工具Yarn系列课程
依赖管理工具 Yarn 简介 Yarn 命令 Yarn 和 npm 评测对比 Yarn的工作流示例 Yarn的workspace和离线安装策略 前端主流依赖管理工具简介
  • 前端开发

    JavaScript

    JavaScript 入门教程

    本教程带你从初级到高级全面掌握 Javascript 的使用方法

    TypeScript 入门教程

    这是一个很好的简单课程,只需2小时你就可以学习TypeScript基础知识。

    Vue 入门教程

    本教程带您从零开始学习 Vue 框架的使用,让您轻松应对 Vue 项目的开发。

    Ajax 入门教程

    本教程涵盖Ajax的实现原理,及Ajax封装,最后是框架实现方法。

    ES6-10 入门教程

    对比 ES5 进行学习 ES6+,理解 ES6+ 语法背后的思想

    Yarn 入门教程

    Yarn得相关基础知识和高级进阶

    ECharts 入门教程

    从零开始学习 ECharts ,掌握 ECharts 核心内容

    HTML & CSS

    CSS3 入门教程

    本课程从盒模型、文字、颜色、过渡、动画、布局、伪类等方面介绍 CSS3 的使用。

    雪碧图入门教程

    本文详细介绍了雪碧图的由来历史以及各种使用方式

    移动端布局教程

    由于移动互联网的兴起,移动端项目占据了很大一部分比重,本章将详细讲解几种常见布局

    Html5 入门教程

    最新一代的HTML标准,增加了许多实用的特性

    Sass 入门教程

    前端项目中 Sass 的快速入门教程

    HTML 入门教程

    从零讲解 HTML,掌握基础 HTML 知识内容

    canvas 入门教程

    本教程带你从初级到高级全面掌握canvas的使用方法

    uni-app 入门教程

    从零开始学习 uni-app 框架,轻松上手应用开发

  • 服务端相关

    服务器

    Nginx 入门教程

    本教程使您掌握 Nginx 安装、配置、核心模块的详解、实际使用的能力。

    HTTP 入门教程

    从协议原理开始到 Web 服务器以及 Web 安全一网打尽

    Docker 入门教程

    从 Docker 的基础概念开始,从实际问题入手带你学习 Docker

    Shell 入门教程

    本教程由浅入深,系统性的讲解Linux Shell脚本编程。

    Linux 入门教程

    本教程从安装 Linux 开始,囊括 Linux 基础命令操作以及进阶系统管理

    开发工具

    Gradle 入门教程

    本教程使您掌握实际使用gradle进行项目构建、测试、打包、发布的能力。

    Vim 编辑器教程

    课程主要讲解Vim的安装配置,四种模式、基本操作,以及包管理工具和寄存器等内容。

    RESTful 规范教程

    本教程从什么是 REST 开始带你领略 Web 开发中无处不在的规范

    Dreamweaver 教程

    DW 是一款同时具有网页制作和网页管理功能的网站开发工具,可以快速进行网站建设

    Markdown 入门教程

    本课程涵盖 Markdown 的基本及扩展语法。

    Maven 入门教程

    从最基础的安装 Maven 开始到 Maven 在开发中的实际应用

    Eclipse 编辑器教程

    本教程从Eclipse安装开始带你轻松掌握Eclipse常用开发技巧

    GitHub 入门教程

    本教程带你轻松掌握最实用的 GitHub 知识

    Android Studio 编辑器教程

    Android Studio 编程技巧一网打尽

    PyCharm 编辑器教程

    工作经常用到的 PyCharm 编辑器使用技巧一网打尽

    Sublime Text 使用教程

    花里胡哨展示sublime编辑器的各种功能

    Postman 教程

    Postman 由Google 开发用来做接口请求测试,前后端开发人员都可以使用

    Git入门教程

    从入门到精通。

    热门服务端语言

    C 语言入门教程

    本教程从语法基础、进阶知识等各方面详解 C 语言。

    Go 入门教程

    本教程从 Go 语言的基本语法掌握到进阶编程实践

    Kotlin 教程

    从 Kotlin 的基础语法到高级特性一网打尽

    Ruby 入门教程

    本教程从 Ruby 的各种对象开始学习到 Ruby 的实际使用

    ThinkPHP 入门教程

    本教程主要讲解 ThinkPHP 框架如何上手开发应用

  • Java

    基础应用

    Java 入门教程

    深入浅出讲解 Java 语言基础知识,带你入门 Java 语言

    Android 入门教程

    为你解析最实用的 Android 技术,让你平滑上手,顺利进阶,为开发保驾护航

    算法入门教程

    分析讲解常见算法的思想及使用

    数据结构入门教程

    通俗易懂的带你了解 Java 数据结构

    Lambda 表达式教程

    本教程展现了Lambda表达式的基础语法以及在程序中的应用

    Java 并发原理入门教程

    本教程为Java并发原理入门教程,在Java程序开发中占据着举足轻重的地位

    设计模式入门教程

    带你分析最常见的九个设计模式

    Java并发工具

    本课程简洁明了展示最基本的并发工具类相关概念及应用方法。

    JVM 入门教程

    JVM 入门教程,对JVM结构进行分模块讲解,简单易懂。

    RabbitMQ 入门教程

    超系统的RabbitMQ基础知识课程,你还在等什么?

    网络编程入门教程

    Java 网络编程核心要点详解

    后端通用面试教程

    带你系统梳理后端高频面试题,轻松丰富你的校招&社招阶段

    框架应用

    Spring Boot 入门教程

    循序渐进讲解 Spring Boot 企业级应用开发

    Spring 入门教程

    通俗易懂 渐进式讲解 Spring 企业级开发应用

    Hibernate 入门教程

    由浅入深讲解 Hibernate 企业级 JDBC 应用框架

    MyBatis 入门教程

    本教程整理出“百分之二十”的知识,帮你办到“百分之八十”事情

    Spring MVC 入门教程

    通俗易懂讲解 Spring MVC 框架应用

    Swagger 入门教程

    本课程以图文并茂的方式带你学习 Swagger 核心知识和应用剖析

    Zookeeper 入门教程

    由浅入深的 学习 ZooKeeper 的基本使用以及高级使用

    Netty 教程

    由浅入深的讲解 Netty 的核心知识体系,快速上手使用和理解 Netty

    Spring Security

    本课程涵盖了 Spring Security 框架的基本原理和集成方法

    微服务

    Spring Cloud Hystrix

    系统介绍 Hystrix 支持特性与实际应用场景实战

  • Python

    基础应用

    Python 入门语法教程

    本教程带你从 Python 的基础语法开始学习 Python。

    Python 原生爬虫教程

    本教程从爬虫基础知识到进阶技巧到实际应用。

    Python 进阶应用教程

    本教程涵盖 Python 的面向对象、标准库解析、异常处理直至最后的领域应用

    Python 算法入门教程

    用 Python 代码实现常用算法并汲取算法核心思想。

    进阶方向应用

    Django 入门教程

    从 Web 基础到 Django 框架的实际开发应用

    Flask 框架教程

    Flask 框架快速入门实现一个 TodoList 功能

    NumPy 入门教程

    本教程从基础的数据类型开始到 NumPy 的高级应用一网打尽

    Scrapy 入门教程

    从爬虫基础开始到使用 Scrapy 框架抓取各大网站数据

    TensorFlow 入门教程

    通过本教程对 TensorFlow 框架快速入门

    Python 办公自动化教程

    本教程带你使用Python快速操作Excel、Word、PPT,处理各种文件

    Pandas 入门教程

    本教程从基础的数据类型开始到 Pandas 的高级应用一-网打尽

  • 数据库

    MySQL

    MySQL 入门教程

    本教程主要讲解 MySQL 增删改查等基础操作

    SQL 入门教程

    本教程讲解使用 SQL 访问和处理数据系统中的数据的方法。

    MySQL 进阶教程

    那些你还不理解的 MySQL 高阶特性一网打尽

首页 慕课教程 Yarn 入门教程 Yarn 入门教程 依赖管理工具 Yarn 简介
dubaobao7 · 更新于 2020-07-23

Yarn 命令

下一节

依赖管理工具 Yarn 简介

yarnlogo
大家好,今天我们开始一个新专题 — Yarn。了解前端开发的同学可能会习惯于使用 npm 或者
cnpm 作为我们项目的包管理工具,它们在给我们的日常开发带来便利的同时,也伴随着,如:安装慢、无法保持包的一致性等让开发者头疼的问题,于是作为 Npm 的直接竞争对手 Yarn 诞生了,本文将从 Yarn 是什么,它有哪些优点,如何使用等方面向大家详细介绍 Yarn。

1. Yarn 的前世今生

1.1 包管理工具的介绍

大家都知道 Yarn 是包管理工具,那么在学习 Yarn 之前,我们有必要讨论一下,包管理工具是什么。

在近几年之前得前端项目中,我们聪明得前端工程师们就已经开始使用如 jQuery 等经典的第三方 JS 工具库,这大大得提高了我们前端项目得开发速度。 我们使用它的方法一般为,在 jQuery 官网上下载相关版本得 JS 静态文件,然后放到我们自己的项目中,引用它封装的相关方法去实现我们的需求,或者还有其他得一些如 CDN 引用等方式。

使用了一段时间之后,我们发现,这种开发方式,比之前我们纯手写或者复制粘贴代码的效率快了一大截,但是也暴露出一些致命缺陷,如以下使用场景:

  • 如果我们引用的 lib1.js,它同时依赖于lib2.js 和 lib3.js,那么我们在下载 lib1.js 的同时,也要将 lib2.js 和 lib3.js 一起下载,并且在文件里他们的引用顺序也有讲究,如果 3 个文件的顺序不对,也会出现一些莫名其妙的问题。
  • 第三方 JS 工具库的作者可能会增加、优化一些代码逻辑,或者只是修改一些其他开发者提出的 Bug,然后他们会把最新代码包发布到自己的官网。而作为开发者的我们,就要经常关注这些项目里使用的第三方库的动态,如果升级就要重复之前的操作,将文件重新手动下载下来,替换项目中之前的文件。
  • 工具的版本问题,我们想升级项目中的依赖工具,就要去寻找资源,手动下载,手动替换。

在这些问题被发现之后,一批富有开拓精神的程序员们提出了他们新的想法和思路,于是 npm 的出现,彻底的终结了以上这些问题。

1.2 Npm 的横空出世

作为各种包管理工具中最早出现的开拓者,Npm 是 Node.js 官方提供的,他的出现同时也制定了一些列的包管理规范,如:

  • 将所有第三方依赖包放在 node_modules 这个文件目录下,我们在增加,删除,升级依赖也只是更新这个文件下的相关依赖包。
  • 增加 package.json 文件,这个文件中存放本项目及项目的依赖和版本信息,这样我们就可以一目了然的了解本项目用到了什么,都是什么版本的,不用多处寻找。
  • 在使用依赖时,Node 提供的支持是内置的 require 方法,默认会到这个目录下去检索模块,无需手动指定路径。

如此一来,有了 Npm 的加持,JavaScript 从一门不被看好得弱类型语言,发展到了现在可以胜任大型前端项目开发,实现模块化,工程化的前端项目搭建,稳定了前后端分离的发展思路。

Npm 已经奠定了前端工程基础,但是追求完美的前端程序员们又基于 Npm 不足的地方,提供了新的完善思路,针对如 Npm 安装包的速度问题,包的版本问题加以改善。所以今天我们要学习的 Yarn 就是用来解决这些问题的。

2. Yarn 的介绍

关于 Yarn 官网中有如下介绍:

Yarn is a package manager for your code. It allows you to use and share code with other developers from around the world. Yarn does this quickly, securely, and reliably so you don’t ever have to worry. —官网

简单翻译成中文就是,yarn作为项目的包管理工具,快速、安全、可靠。你下载的包将不再重新下载。而且确保在不同系统中可以正常工作。

这里我们看到Yarn官方推荐的三个特点:

  • 速度快: Yarn 缓存了每个下载过的包,再次使用时无需重复下载。同时它是并行的,因此安装速度更快
  • 安全: 在执行代码之前,Yarn 会通过算法校验每个安装包的完整性。
  • 可靠: 使用详细、简洁的锁文件格式和明确的安装算法,使 Yarn 能够在不同系统上保证无差异的工作。

通过上面的介绍,我们可以总结出:Yarn 是基于 Npm 的不足之处做出了全新的改版升级,但是我们并不能说 Yarn 的出现会完全取代 Npm,因为目前的 Yarn ,只是完善升级了 Npm,让开发者们有了更好的体验,但截至目前为止,Yarn 并没有实现全部的 Npm 命令及功能。

3. 使用 Npm 的缺点(竞品对比)

  • 感受过上文 yarn 安装依赖的速度,对比 Npm,就会感觉等待 Npm 安装进度条是一个很漫长的过程,尤其是在网速不好的情况下,当然大家也可以使用 Npm 在国内的淘宝镜像服务 cnpm,这样速度虽然提升了,但是安装之后运行时的各种问题,也是开发者一直所诟病的,所以在速度上,yarn 碾压 npm
  • 关于错误提示,yarn 做的更加人性化,使用 npm 时,如果安装某一个依赖发生错误,npm 会继续打印之后的安装日志,这样依赖很多的大型项目,开发者很难注意到到底哪里安装报错
  • 在 npm5 之前,npm 安装无法保证版本的一致性,如:“1.0.3”、“~1.0.3”、"^1.0.3"这三个命令分别代表着:安装指定的 1.0.3 版本、安装 1.0.X 中最新的版本、
    安装 1.X.X 中最新的版本,这样虽然更详细,但也给学习中的开发者增加极大的学习成本。

yarn 为了解决以上的问题,增加了 yarn.lock 锁文件,这个方案让开发者不必再担心项目中其他成员安装的依赖版本不同,保证了在不同环境下项目都能完美运行。并且 yarn 的安装日志显然比 npm 更简洁且易于阅读。

4. Yarn 和 npm 能否同时使用?

可以的,上文提到,yarn 是对 npm 进行了安装和提升,实现了 npm大 部分的命令和功能,且二者都遵循 package.json 文件,所以我们也不用担心兼容问题,yarn 完全没有侵入性。我本人在实际运用场景中,也经常使用 yarn 在安装或删除依赖文件,使用 npm 运行项目中定义的如:启动命令,打包命令等,所以二者完全可以同时使用。

5. 在项目中如何安装及使用 Yarn

5.1 安装

yarn 有很多种安装方式,对于不同的系统,我们可以区别安装,在这里我推荐大家使用 Npm 去安装,这种方法最方便简洁。

 npm i -g yarn

5.2 关于使用

在一个新项目中,我们通常按照以下步骤去使用 yarn:

  1. 写入生成package.json,确定项目中需要哪些依赖(如果已有该文件跳过本步骤)。
  2. 执行 yarn 初始化项目依赖,生成 yarn.lock 文件。
  3. 通过yarn add 命令添加需要安装的依赖。
  4. 确定想升级某个依赖的最新版本时,使用yarn upgrad命令升级。

以上是简单介绍关于 yarn 得使用方法,因为在之后得相关小节里,有针对于 yarn 使用方法和常用命令的详细讲解,在这里就不再赘述了。希望大家持续关注之后的章节,更加深入的学习关于 yarn 的知识和技能。

6. 学习与总结

yarn 的学习成本非常低,它本身就是为了简化 npm 的命令,提高安装依赖的速度和效率而诞生的工具,希望同学们可以认真学习,并且在项目中多多实践。

7. 关于前置基础及技能

我们知道,yarn 是跟 npm 很相似的前端依赖管理工具,不过他比 npm 更加方便高效,也更加简单。所以为了方便理解 Yarn 的使用及原理,可以先了解 npm 的用法,当然如果想直接学习 yarn ,相信大家只要认真努力,也一样可以学得会。加油!

  • 划线
  • 写笔记
  • 复制

0/1000

 

下一节

Yarn 命令

我要提出意见反馈
· 最近更新于 请填写更新时间
使用手机查看
最近更新
向你推荐
更多
索引目录
依赖管理工具 Yarn 简介
1. Yarn 的前世今生
1.1 包管理工具的介绍
1.2 Npm 的横空出世
2. Yarn 的介绍
3. 使用 Npm 的缺点(竞品对比)
4. Yarn 和 npm 能否同时使用?
5. 在项目中如何安装及使用 Yarn
5.1 安装
5.2 关于使用
6. 学习与总结
7. 关于前置基础及技能
意见反馈 收藏教程 标记书签
使用 Ctrl+D 可将网站添加到书签
  • 企业服务
  • 网站地图
  • 网站首页
  • 关于我们
  • 联系我们
  • 讲师招募
  • 帮助中心
  • 意见反馈
  • 代码托管

Copyright© 2025 imooc.com All Rights Reserved | 京ICP备12003892号-11 京公网安备11010802030151号

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

返回顶部