前端基础建设(二)-Yarn篇
在拉钩教育偶然看到了前端基础建设相关的教程,学习时候就顺便记录一下前端团队在基础建设方面的一些工作。
Yarn
Yarn 发布于 2016 年 10 月
yarn 是 Facebook,Google,Exponent 和 Tilde 构建的 javascript 包管理器
Yarn 可以通过 synp 工具将 yarn.lock 转换为 package-lock.json
由于 yarn 的全局安装位置与 npm 不同,所以要配置 yarn 的全局安装路径到环境变量中,否则全局安装的包不起作用。 具体操作如下
安装 yarn 后执行 yarn global dir 命令,获取 yarn 全局安装位置。 将该位置配置到电脑环境变量中
Yarn 的安装和使用
yarn 通过 npm 来安装
1 | |
Yarn 解决了什么问题?
- 解决当时 npm 包下载速度过慢,完整性和一致性问题
- 网络性能更好:Yarn 采用了请求排队的理念,类似并发连接池,能够更好地利用网络资源;同时引入了更好的安装失败时的重试机制。
- 采用缓存机制,实现了离线模式(npm 目前也有类似实现)。
- 确定性:通过 yarn.lock 等机制,保证了确定性。即不管安装顺序如何,相同的依赖关系在任何机器和环境下,都可以以相同的方式被安装。(在 npm v5 之前,没有 package-lock.json 机制)
Yarn 和 npm 常用命令的对比
初始化项目
-y 参数表述会以当前全局默认配置生成一个 package.json 文件,不加的话会进入交互式创建描述文件,-y 就是 yes 的简写
1 | |
下载项目的所有声明的依赖:
1 | |
下载指定的开发时依赖
-D 是–save-dev 的简写,表示安装在运行时依赖中。-S 是–save 简写,表示安装在生产环境中使用的包。以来安装好后,除了 node_modules 目录,yarn 会生成一个 yarn.lock 文件,而 npm 会生成一个 package.lock 文件
1 | |
卸载指定开发依赖
1 | |
Yarn 的常用命令
查看版本
1 | |
Yarn 区别于 npm 所特有的命令
1 | |
Yanr 的安装机制

- 检测包:检测是否存在 npm 相关文件,比如 package-lock.json,检查 OS,CPU 等
- 解析包: 先获取当前项目中的 package.json 定义的内容
- 获取包:检查缓存中是否存在当前依赖包,将不存在的下载到缓存目录
- 链接包:将项目中依赖复制到 node_modules 中
- 如果依赖包中存在二进制包的进行编译
查看 Yarn 缓存目录
yarn 会优先采用网络资源,网络资源请求失败会使用本地缓存.
我这里 window 系统会默认安装在 C:\Users\Administrator\AppData\Local\Yarn\Cache\v6 这个目录中
1 | |
本文标题:前端基础建设(二)-Yarn篇
文章作者:Niuhk
发布时间:2020-12-28
最后更新:2022-01-23
原始链接:https://www.niuhk.cn/2020/12/28/前端基础建设(二)/
版权声明:转载请注明出处!
分享