深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
var lodash = require('lodash')
console.log(lodash.VERSION) // v1.0.3
另一个同事获取项目代码,执行 npm install
,这时的目录依赖结构里面,第一层依赖的 lodash
变成了 4.x 版本,这样就造成了依赖版本不一致的问题。而 yarn
则会保证无论怎样引入的顺序,目录依赖结构都是一致的,确保不会发生这样的 BUG
。
什么是 Yarn
Yarn 就是一个类似于 npm 的包管理工具,它是由 facebook
推出并开源。
与 npm 相比,yarn 有着众多的优势,主要的优势在于:速度快、离线模式、版本控制。
速度快
npm 会等一个包完全安装完才跳到下一个包,但 yarn 会并行执行包,因此速度会快很多。
Yarn 会缓存它下载的每个包,所以无需重复下载。它还能并行化操作以最大化资源利用率,安装速度之快前所未有。
离线模式
之前安装过的包会被保存进缓存目录,以后安装就直接从缓存中复制过来,这样做的本质还是会提高安装下载的速度,避免不必要的网络请求。
可靠可确定性
保证各平台依赖的一致性
网络优化
力求网络资源最大利用化,让资源下载完美队列执行,避免大量的无用请求,下载失败会自动重新请求,避免整个安装过程失败
扁平化模式
对于不匹配的依赖版本的包创立一个独立的包,避免创建重复的。
对于多个包依赖同一个子包的情况,yarn 会尽量提取为同一个包,防止出现多处副本,浪费空间。
版本控制
npm 用下来比较强的一个痛点就是:当包的依赖层次比较深时,版本控制不够精确。会出现相同 package.json
,但不同人的电脑上安装出不同版本的依赖包,出现类似 “我的电脑上可以运行,别人的电脑上不行” 的 bug 很难查找。你可以使用 npm-shrinkwrap 来实现版本固化,版本信息会写入 npm-shrinkwrap.json
文件中,但它毕竟不是 npm 的标准配置。
而 yarn 天生就能实现版本固化。会生成一个类似 npm-shrinkwrap.json 的 yarn.lock 文件,而文件内会描述包自身的版本号,还会锁定所有它依赖的包的版本号:
"@babel/code-frame@7.0.0-beta.47":
version "7.0.0-beta.47"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.47.tgz#d18c2f4c4ba8d093a2bcfab5616593bfe2441a27"
dependencies:
"@babel/highlight" "7.0.0-beta.47"
yarn.lock
存储着你的每个包的确切依赖版本,能确保从本地开发到生产环境,所有机器上都有精确相同的依赖版本。
其他关于 Yarn 的介绍
我们在使用 Yarn 时,依然要访问 npm 仓库,但 Yarn 能够更快速地安装软件包和管理依赖关系,并且可以在跨机器或者无网络的安全环境中保持代码的一致性。
Yarn 安装
windows
在 Yarn 中文网可以找到 window 下的三种安装方法:
不过我觉得这三种方法都不好用,快速好用的安装方法应该还是使用 npm 来安装:
npm install -g yarn
关于为什么使用 -g
,以及 -g
会带来哪来影响,这个可以看我的这篇文章:npm详细介绍,里面详细介绍了为什么要使用 -g
,以及 -g
的作用。
mac
方式一
npm install -g yarn
如果有报: Please try running this command again as root/Administrator.
,可能就是权限不足,因此你需要切换到最高权限去执行命令
sudo -s
npm install yarn -g
方式二
使用另一种初始化脚本的方法,可能就会比较简单一些:
curl -o- -L https://yarnpkg.com/install.sh | bash
Yarn 换源
使用 Yarn 来安装依赖时的体验比 Npm 要好很多;但是偶尔也会存在 Yarn 源仓库包下载不稳定的情况
// 查看 yarn 配置
yarn config get registry
或者
yarn config list
> registry: 'https://registry.yarnpkg.com'
一、临时修改
yarn add 软件名 --registry https://registry.npm.taobao.org/
二、全局修改,安装淘宝镜像
yarn config set registry https://registry.npm.taobao.org
三、使用第三方软件快速修改、切换 yarn 镜像源
yrm (YARN registry manager) 不仅可以快速切换镜像源,还可以测试自己网络访问不同源的速度
# 安装 yrm
npm install -g yrm
# 列出当前可用的所有镜像源
yrm ls
// npm ----- https://registry.npmjs.org/
// cnpm ---- http://r.cnpmjs.org/
// taobao -- https://registry.npm.taobao.org/
// nj ------ https://registry.nodejitsu.com/
// rednpm -- http://registry.mirror.cqupt.edu.cn
// skimdb -- https://skimdb.npmjs.com/registry
// yarn ---- https://registry.yarnpkg.com
# 使用淘宝镜像源
yrm use taobao
# 测试访问速度
yrm test taobao
Yarn 常用命令
npm install
===yarn
—— install安装是默认行为npm install taco --save
===yarn add taco
—— taco包立即被保存到package.json
中。npm uninstall taco --save
===yarn remove taco
npm install taco --save-dev
===yarn add taco --dev
npm update --save
===yarn upgrade
-
npm install taco@latest --save
===yarn add taco
npm install taco --global
===yarn global add taco
—— 一如既往,请谨慎使用 global 标记。
注意:使用
yarn
或yarn install
安装全部依赖时是根据package.json
里的dependencies
字段来决定的
-
npm init
===yarn init
npm init --yes/-y
===yarn init --yes/-y
npm link
===yarn link
npm outdated
===yarn outdated
npm publish
===yarn publish
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
724468)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!