什么是yarn
一种取代npm的 Node的模块管理器,从使用上来看,从npm过度到yarn几乎零成本,除了操作上相近,yarn 同样是一个从 npm 注册源获取模块的工具。
为什么要使用yarn来代替npm呢?从官网的介绍(FAST, RELIABLE, AND SECURE DEPENDENCY MANAGEMENT)可以看出来他比npm更加快速、安全,但我选择yarn一个重要的原因是:yarn有一个 yarn.lock 文件,每次模块被添加时,yarn 就会创建(或更新)yarn.lock 文件,这个文件保证了保证了不同机器下载的包的版本都一样,而npm会根据package.json定义的版本号范围下载包,导致不同机器或者不同时间下载的包的版本不一样。
注意!npm 5.0.x 版本已经会在执行npm i的时候生成package-lock.json的文件,作用就像上面说的一样,“锁”住版本。(但npm新版本还不太稳定,可以等一段时间再使用)
接下来进入正题,Mac安装yarn
yarn 官网 介绍是通过 Homebrew 安装
brew install yarn
但是安装下来的版本为0.16.1,版本太低,需要升级,重点是我通过 brew upgrade yarn 也无法将yarn的版本升级到最新版本。折腾了几遍之后也无法解决,想着用到服务器也不需要Homebrew,那就改用其它安装方式吧。下面是解决方式(不管是安装或者更新):
1.手动移除本地二进制 yarn文件
rm -f /usr/local/bin/yarnpkg
rm -f /usr/local/bin/yarn
2.移除缓存:
rm -rf ${HOME}/.yarn
3.如果之前存在环境变量,在.zshrc或.bash_profile有下面配置,移除它:
export PATH="$PATH:`yarn global bin`"
4.通过 curl 安装 yarn :
curl -o- -L https://yarnpkg.com/install.sh | bash
这里查看一下我电脑里的版本:
$ yarn -v
1.3.2
显示是1.3.2版本,那么现在让我们运行上面脚本的下载并安装:
成功安装最新版本(1.6.0)
5.看环境变量是否已修改,查看 .zshrc 或者 .bash_profile,如果没有请添加下面一行:
export PATH="$PATH:$HOME/.yarn/bin:$HOME/.config/yarn/global/node_modules/.bin"
运行 yarn -v 查看是否正常。正常的话就可以开始使用 yarn:
使用 create-react-app 一个 TypeScript 项目
$ yarn create react-app antd-demo-ts --scripts-version=react-scripts-ts
....
$ cd antd-demo-ts
$ yarn start
curl
curl命令是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。
与wget区别:wget是个专职的下载利器,可以递归,支持断点;而curl多用来调试网页,提交web数据,可以post/get请求,可以自定义发送头
-o filename url 参数是保存网页内容到文件中
-L 进行重定向