yarn 版本 v1.16.0 (多少版本都无所谓啦我觉得

简单介绍一下yarn安装包的机制、yarn的缓存、yarnoffline mode的开启方式与验证方式

1. Yarn自身的Cache

首先我们在workspace文件夹下创建一个package.json文件,内容如下:

{
  "name": "yarn-offline",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "is-array": "^1.0.1"
  }
} 

然后,在workspace下运行指令

yarn

可以得到结果

$ yarn
yarn install v1.16.0
info No lockfile found.
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
Done in 1.02s. 

此时可以发现,yarnworkspace下新建了文件yarn.lock,文件中包含以下内容

is-array@^1.0.1:
  version "1.0.1"
  resolved "https://registry.yarnpkg.com/is-array/-/is-array-1.0.1.tgz#e9850cc2cc860c3bc0977e84ccf0dd464584279a"
  integrity sha1-6YUMwsyGDDvAl36EzPDdRkWEJ5o= 

其中resolved字段可以简单的理解为这个包的下载路径。如果我们将node_module文件夹删除,并且清除yarn的安装缓存文件后再执行一遍yarn指令,包管理系统会从resolved指示的网址重新下载我们需要的包。

所以当我们发布一个项目的时候我们应该将yarn.lock文件一并发布以保证在不同的主机上可以拥有相同版本的第三方依赖。

当我们在一台机器上执行过yarn的安装指令过后,yarn会将这个包缓存在文件系统中以便我们重新安装。

可以试着抓包看看,需要做的操作:
1. 删除node_modules文件夹
2. 修改yarn.lock文件,将https改为http(方便抓包
3. 在workspace下执行yarn

rm -rf node_modules
# 修改yarn.lock文件
yarn


标题:Running Yarn with offline mode
作者:ituac
地址:http://blog.ituac.com/hehe

添加新评论