快速开始

直接进入实践,从创建一个新的 react 项目开始,看看 yarn 2 的变化

基于项目的 yarn 的版本

lockfile 的初衷就是为了确保 package 的版本绝对一致,但是包管理器本身的版本不一致也可能导致问题。所以与之前的全局安装不同,yarn 2 被直接安装到了项目中

yarn set version berry

**yarn dlx 更安全的 npx**

npx 是支持运行本地和远程 scripts 的,在一些情况下会比较危险

当通过 npx 运行本地 script 时,typo 可能不会导致 c,反而会变成运行远程 script

yarn dlx (download and execute)被设计成只可运行远程 script(区别于 yarn run 运行本地)

yarn dlx create-react-app my-app

Offline Cache

观察一下一个使用 yarn 2 项目的目录结构

在默认配置下 .yarn/cache 下是一系列 .zip 文件,yarn berry 的 repo 就是这么做的

这意味着 cache 会成为 repo 的一部分,当某个 package 的源出现问题时(比如内部 npm 挂了)依然可以正常工作,同时也意味着 Zero Install 成为了可能

不想每个 repo 一个 cache?也可以开启 enableGlobalCache

Plug'n'Play

node_modules 的问题