Yarn 入门
Yarn 是快速、可靠、安全的 js 包管理器。
关键词:
nodejs,包管理,yarn
简介
Yarn 是快速、可靠、安全的 js 包管理器。
- 快速 - Yarn 会缓存它下载的每个包,所以无需重复下载。它还能并行化操作以最大化资源利用率,安装速度之快前所未有。
- 安全 - Yarn 会在每个安装包被执行前校验其完整性。
- 可靠 - Yarn 使用格式详尽而又简洁的 lockfile 文件和确定性算法来安装依赖,能够保证在一个系统上的运行的安装过程也会以同样的方式运行在其他系统上。
安装
先决条件:已安装 Nodejs。
执行命令:npm i -g yarn
虽然还有其他安装方式,但并不推荐。
Yarn 工作流
Yarn 工作流:
- 创建一个新项目
- 增加/更新/删除依赖
- 安装/重装你的依赖
- 引入版本控制系统(例如 git)
- 持续集成
Yarn 常用命令
每个命令都会更新 package.json 和 yarn.lock 文件。
初始化新项目
yarn init
添加依赖包
在使用一个包之前,你需要执行以下命令将其加入依赖项列表:
yarn add [package]
[package]会被加入到package.json文件中的依赖列表,同时yarn.lock也会被更新。
{
"name": "my-package",
"dependencies": {
+ "package-1": "^1.0.0"
}
}
你可以用以下参数添加其它类型的依赖:
yarn add --dev添加到devDependenciesyarn add --peer添加到peerDependenciesyarn add --optional添加到optionalDependencies
yarn add [package]@[version]
yarn add [package]@[tag]
[version] 或 [tag] 会被添加到 package.json,并在安装依赖时被解析。
例如:
yarn add package-1@1.2.3
yarn add package-2@^1.0.0
yarn add package-3@beta
{
"dependencies": {
"package-1": "1.2.3",
"package-2": "^1.0.0",
"package-3": "beta"
}
}
将依赖项添加到不同依赖项类别
分别添加到 devDependencies、peerDependencies 和 optionalDependencies:
yarn add [package] --dev
yarn add [package] --peer
yarn add [package] --optional
更新依赖包
yarn upgrade [package]
yarn upgrade [package]@[version]
yarn upgrade [package]@[tag]
这会更新package.json和yarn.lock 文件。
{
"name": "my-package",
"dependencies": {
- "package-1": "^1.0.0"
+ "package-1": "^2.0.0"
}
}
删除依赖包
yarn remove [package]
这会更新package.json和yarn.lock 文件。
安装依赖项
yarn install 是用于安装一个项目的所有依赖。 Yarn 会从 package.json 中读取依赖,并将依赖信息存储到 yarn.lock 中。
如果你正在开发一个包,通常你会在以下情况之后进行依赖安装:
- 你刚检出需要这些依赖项的项目代码。
- 项目的另一个开发者添加了新的依赖,你需要用到。
有很多参数可以控制依赖安装的过程,包括:
- 安装所有依赖 - yarn 或 yarn install
- 安装一个包的单一版本 - yarn install --flat
- 强制重新下载所有包 - yarn install --force
- 只安装生产环境依赖 - yarn install --production
参考:
yarn install的 完整参数列表。
创建一个新项目
不论是已经有了现成的代码仓库(目录),还是正着手启动一个全新项目,你都可以使用同样的方法引入 Yarn。
在命令行终端里,跳转到准备引入 Yarn 的目录(通常是一个项目的根目录),执行以下命令:
yarn init
这将打开一个用于创建 Yarn 项目的交互式表单,其中包含以下问题:
name (your-project):
version (1.0.0):
description:
entry point (index.js):
git repository:
author:
license (MIT):
你既可以回答这些问题,也可以直接敲回车键(enter/return)使用默认配置或者留空。
配置文件
为了别人能使用你的包,以下文件必须被提交进版本控制系统:
package.json- 包含包的所有依赖信息;yarn.lock- 记录每一个依赖项的确切版本信息;- 包实现功能的实际项目代码。
请参阅Yarn Example Package项目,查看一个可用的 Yarn 包所需的最少文件配置。
现在应该创建了一个和下面文件内容类似的 package.json:
{
"name": "my-new-project",
"version": "1.0.0",
"description": "My New Project description.",
"main": "index.js",
"repository": {
"url": "https://example.com/your-username/my-new-project",
"type": "git"
},
"author": "Your Name <you@example.com>",
"license": "MIT"
}
执行yarn init之后,除了以上文件被创建之外,没有任何副作用。你可以随意编辑此文件。
package.json文件里存储了项目的有关信息。 包括项目名称、维护者信息、代码托管地址,以及最重要的:项目依赖。
引用和引申
Yarn 入门的更多相关文章
- [Spark]Spark、Yarn 入门
Spark在集群上的运行模式 链接: http://spark.apache.org/docs/latest/cluster-overview.html Component章节 总结: 1 Each ...
- (转载)从Java角度理解Angular之入门篇:npm, yarn, Angular CLI
本系列从Java程序员的角度,带大家理解前端Angular框架. 本文是入门篇.笔者认为亲自动手写代码做实验,是最有效最扎实的学习途径,而搭建开发环境是学习一门新技术最需要先学会的技能,是入门的前提. ...
- Hadoop学习(3)-mapreduce快速入门加yarn的安装
mapreduce是一个运算框架,让多台机器进行并行进行运算, 他把所有的计算都分为两个阶段,一个是map阶段,一个是reduce阶段 map阶段:读取hdfs中的文件,分给多个机器上的maptask ...
- Flink(一)【基础入门,Yarn、Local模式】
目录 一.介绍 Spark | Flink 二.快速入门:WC案例 pom依赖 批处理 流处理 有界流 无界流(重要) 三.Yarn模式部署 安装 打包测试,命令行(无界流) Flink on Yar ...
- Node.js包管理器Yarn的入门介绍与安装
FAST, RELIABLE, AND SECURE DEPENDENCY MANAGEMENT. 就在昨天, Facebook 发布了新的 node.js 包管理器 Yarn 用以替代 npm .咱 ...
- Node入门教程(7)第五章:node 模块化(下) npm与yarn详解
Node的包管理器 JavaScript缺少包结构的定义,而CommonJS定义了一系列的规范.而NPM的出现则是为了在CommonJS规范的基础上,实现解决包的安装卸载,依赖管理,版本管理等问题. ...
- Hadoop2-HDFS学习笔记之入门(不含YARN及MR的调度功能)
架构 Hadoop整体由HDFS.YARN.MapReduce三大部分组成,推荐架构参考:https://www.cnblogs.com/zhjh256/p/10573684.html. 注:2.x的 ...
- 从Java角度理解Angular之入门篇:npm, yarn, Angular CLI
本系列从Java程序员的角度,带大家理解前端Angular框架. 本文重点介绍Angular的开发.编译工具:npm, yarn, Angular CLI,它们就像Java在中的Maven,同时顺便介 ...
- yarn详细入门教程(转载)
简介Yarn 是 Facebook, Google, Exponent 和 Tilde 开发的一款新的 JavaScript 包管理工具.就像我们可以从官方文档了解那样,它的目的是解决这些团队使用 n ...
随机推荐
- 网站pc端分享QQ好友,空间,微博
在开发pc端网站的过程中,涉及到邀请好友的功能,之前单纯的复制粘贴已经无法满足用户的体验.故,仿照移动端添加自动分享到QQ好友,QQ空间,QQ微博的功能. 分享到QQ好友:http://connect ...
- 使用光盘作为yum软件安装源安装X Window
使用光盘作为yum软件安装源安装X Window 挂载光驱 [root@centos6 ~]# mkdir /media/cdrom [root@centos6 ~]# mount /dev/ ...
- VXLAN技术在数据中心的应用
1.VXLAN技术可以通过物理交换机实现,也可以通过服务器实现,这两种实现的后台反应的是CT技术,还是IT技术来主导数据中心虚拟网络的发展. 2.物理交换机实现的VXLAN受限于芯片支持的规则,一般情 ...
- 【第七篇】SAP ABAP7.5x新语法之F4增强
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:SAP ABAP7.5x系列之F4增强 前言部分 ...
- 【hexo】01安装
什么是 Hexo? Hexo 是一个快速.简洁且高效的博客框架.Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页. 安装前提 安装 Hexo 相当简 ...
- shell脚本之数组
变量:存储单个元素的内存空间. 数组:存储多个元素的连续的内存空间. 数组名:整个数组只有一个名字: 数组索引:编号从0开始: 数组名[索引]: 引用数组中的某个元素:${ ARRAY_NAME [ ...
- tcpdump抓包具体分析
Tcpdump抓包分析过程 一.TCP连接建立(三次握手) 过程 客户端A,服务器B,初始序号seq,确认号ack 初始状态:B处于监听状态,A处于打开状态 A -> B : seq = x ...
- Flume-1.8.0_部署与常用案例
该文章是基于 Hadoop2.7.6_01_部署 进行的 Flume官方文档:FlumeUserGuide 常见问题:记flume部署过程中遇到的问题以及解决方法(持续更新) 1. 前言 在一个完整的 ...
- 【转载】Linux 内存管理机制
在Linux中经常发现空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然.这是Linux内存管理的一个优秀特性,主要特点是,无论物理内存有多大,Linux 都将其充份利用,将 ...
- $Matrix-Tree$定理-理论
$Matrix-Tree$ 矩阵的行列式 这个东西看了好久才明白 _ (:з」∠)_ 时间不够可以直接跳到第六段. 看到这种新定义,第一反应还是去翻百度百科: 但是这个讲解真的让人很迷惑...关键就是 ...