利用yarn代替npm管理前端项目模块依赖的方法详解


Posted in Javascript onSeptember 04, 2017

本文主要给大家介绍了关于yarn代替npm管理前端项目模块依赖的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

什么是 yarn?

简单来说,yarn 是一个与 npm 功能相同的工具,用于前端项目的依赖管理。在使用 npm 的项目中,使用 npm 命令的地方都可以使用 yran 来代替。

为什么要使用 yarn 替代 npm 呢?yarn 相对 npm 来说,主要的特点有:

  • 离线、并行安装:依赖并行安装,缓存已下载过的依赖并优先使用,各种优化使得安装依赖速度显著提升
  • 确定性:默认生成 yarn.lock 文件,可以保证各开发人员开发安装依赖的目录具有一致性
  • more…

好吧,其实 npm 也在不断的优化改进中。但 yarn 确实有很多亮点,至少当前是非常值得你去使用的。

yarn 使用快速上手

安装

虽然安装 yarn 可以不依赖 npm,但这里还是建议你使用 npm 来安装吧,快速而简洁:

npm i -g yarn

在项目中使用

首次初始化项目时执行,在每次项目启动/构建之前,也都应执行一次,以保证本地依赖得到及时更新。

该命令会检查 package.json 和 yarn.lock 文件中的依赖,当有其内容更新,会进行依赖更新安装。

yarn <install>

依赖更新。当你希望更新依赖模块到其最新版本时执行该命令。

yarn upgrade

yarn 常用命令

开始新项目

yarn init

添加依赖包

yarn add [package]
yarn add [package]@[version]
yarn add [package]@[tag]

升级依赖包

yarn upgrade [package]
yarn upgrade [package]@[version]
yarn upgrade [package]@[tag]

移除依赖包

yarn remove [package]

安装项目的全部依赖

yarn

或者

yarn install

yarn 使用实践建议

我们选择 yarn 的主要原因是依赖安装速度快,默认生成的 yarn.lock 会保证所有成员的模块依赖目录能够很好的保持一致。

yarn install 和 yarn upgrade 的执行逻辑,可以让你可以很清晰的管理本地依赖的版本更新时机,又能很好的让所有开发人员的本地依赖保持一致性。

使用 npm install 则有些乱,当你不想写死版本号依赖时,它总会安装依赖包最新可用的版本,但这在有时候并不是你想要的。

在 yarn 之前,我们使用的是 npm+淘宝仓库方案,也会使用 cnpm。在国内,cnpm 的依赖安装速度比 yarn 还要快,但 cnpm 在 windows 下通过创建链接引用的方式管理包依赖,可能会带来一些问题。

现在我们会默认使用淘宝仓库,使用 npm 管理全局依赖,使用 yarn 管理具体项目内的依赖。

在一个新的项目中使用 yarn,我们会这么来做:

  • 写好 package.json,写入初始的第三方依赖
  • 执行 yarn 命令,初始化安装项目依赖,生成 yarn.lock 文件
  • 后续通过执行 yarn add xxx 添加更多需要的依赖(也可直接在 package.json 文件中写入)
  • 当确定需要更新依赖模块到其最新版本时,执行 yarn upgrade 命令
  • 配置项目启动命令执行前,先执行 yarn 命令,以保证当 yarn.lock 被更新时,本地依赖也及时得到更新。例如,在 package.json 的 script 部分中配置 start 命令: "start": "yarn && yarn run build:dev"

你是如何来使用 yarn 的呢?欢迎分享你的经验。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

相关参考

npm https://docs.npmjs.com
yarn https://yarnpkg.com

Javascript 相关文章推荐
改写一个简单的菜单 弹性大小
Dec 02 Javascript
JavaScript 判断浏览器是否支持SVG的代码
Mar 21 Javascript
JavaScript资源预加载组件和滑屏组件的使用推荐
Mar 10 Javascript
浅谈原生JS实现jQuery的animate()动画示例
Mar 08 Javascript
深究AngularJS中$sce的使用
Jun 12 Javascript
基于AngularJS实现的工资计算器实例
Jun 16 Javascript
React-intl 实现多语言的示例代码
Nov 03 Javascript
vue2.0 实现导航守卫(路由守卫)
May 21 Javascript
jQuery实现动画、消失、显现、渐出、渐入效果示例
Sep 06 jQuery
浅谈VUE-CLI脚手架热更新太慢的原因和解决方法
Sep 28 Javascript
Windows上node.js的多版本管理工具用法实例分析
Nov 06 Javascript
vue实现下拉菜单树
Oct 22 Javascript
JS实现匀加速与匀减速运动的方法示例
Sep 04 #Javascript
node-sass安装失败的原因与解决方法
Sep 04 #Javascript
使用MUI框架模拟手机端的下拉刷新和上拉加载功能
Sep 04 #Javascript
JS图片延迟加载插件LazyImgv1.0用法分析【附demo源码下载】
Sep 04 #Javascript
React教程之Props验证的具体用法(Props Validation)
Sep 04 #Javascript
VueJS组件之间通过props交互及验证的方式
Sep 04 #Javascript
vue中component组件的props使用详解
Sep 04 #Javascript
You might like
php array_merge下进行数组合并的代码
2008/07/22 PHP
两个强悍的php 图像处理类1
2009/06/15 PHP
php小经验:解析preg_match与preg_match_all 函数
2013/06/29 PHP
win7 64位系统 配置php最新版开发环境(php+Apache+mysql)
2014/08/15 PHP
js固定DIV高度,超出部分自动添加滚动条的简单方法
2013/07/10 Javascript
javascript实现TreeView 无刷新展开的实例代码
2013/07/13 Javascript
javascript中打印当前的时间实现思路及代码
2013/12/18 Javascript
jQuery 设置 CSS 属性示例介绍
2014/01/16 Javascript
使用AngularJS编写较为优美的JavaScript代码指南
2015/06/19 Javascript
基于BootStrap Metronic开发框架经验小结【五】Bootstrap File Input文件上传插件的用法详解
2016/05/12 Javascript
购物车前端开发(jQuery和bootstrap3)
2016/08/27 Javascript
jQuery如何防止Ajax重复提交
2016/10/14 Javascript
javascript 中的事件委托详解
2016/10/25 Javascript
微信小程序分页加载的实例代码
2017/07/11 Javascript
jQuery实现对网页节点的增删改查功能示例
2017/09/18 jQuery
nginx+vue.js实现前后端分离的示例代码
2018/02/12 Javascript
Servlet3.0与纯javascript通过Ajax交互的实例详解
2018/03/18 Javascript
详解JavaScript 中 if / if...else...替换方式
2018/07/15 Javascript
vue-cli3.0 脚手架搭建项目的过程详解
2018/10/19 Javascript
Vue.js watch监视属性知识点总结
2019/11/11 Javascript
[03:24]2014DOTA2国际邀请赛 神秘商店生意火爆
2014/07/18 DOTA
Python只用40行代码编写的计算器实例
2017/05/10 Python
Python 自动刷博客浏览量实例代码
2017/06/14 Python
Python编程实现从字典中提取子集的方法分析
2018/02/09 Python
python dataframe astype 字段类型转换方法
2018/04/11 Python
Python3 中把txt数据文件读入到矩阵中的方法
2018/04/27 Python
Python实现京东抢秒杀功能
2021/01/25 Python
实列教程 一款基于jquery和css3的响应式二级导航菜单
2014/11/13 HTML / CSS
HTML5不支持标签和新增标签详解
2016/06/27 HTML / CSS
Java的接口和C++的虚类的相同和不同处
2014/03/27 面试题
房产销售经理职责
2013/12/20 职场文书
地理信息科学专业推荐信
2014/09/08 职场文书
团党委领导干部党的群众路线教育实践活动个人对照检查材料思想汇
2014/10/05 职场文书
涪陵白鹤梁导游词
2015/02/09 职场文书
2015年司机工作总结
2015/04/23 职场文书
交通安全温馨提示语
2015/07/14 职场文书