yarn
https://gyazo.com/3f717c051af6635441387ee143feddb8
公式:Yarn
npmのようなパッケージ管理ツール
はやい
v2以降(berry)
新機能
yarn dlx
https://yarnpkg.com/cli/dlx
早い
デフォルト構成で容量減ラスようにした
アーキテクチャ刷新
migration
https://yarnpkg.com/getting-started/migration#step-by-step
依存
node v12〜
Zero-installというワークフローがオプショナルで増えた
yarn installはなるべく同じ状態にしようとはしてるが、できない可能性もある(yarn固有の問題ではない)
yarnの将来のバグスによってインストールができなくなるかも
ネットワーク障害でパッケージが利用できなくなる
権限変更でyarn installで一時ディレクトリに書き込めなくなるかも
認証の問題でがあるかも
言われてるのは一般的なものよりも高度な起こりうる事象kadoyau.icon
将来的にこっちに移行すると言うわけではないらしい
https://yarnpkg.com/features/zero-installs
gitignoreがこれを有効に空くかどうかで異なる
Plug'n'Playを使って、cacheフォルダーを介して依存関係を解決する(node_modulesは使わない)
cacheはyarn/cacheに入る
Q. クソでかいnode_modulesを入れるのと同じでは?
A. 全然違うよ!
非圧縮の135kのnode_modulesはyarn/cacheでは2k binary archiveになる
2kならgitは問題ないでしょ
パッケージごとに変更されたファイルが1つだけ生成される
checksumをとるのも簡単なのでセキュアにもなる
yarn installして生成される.pnp.cjsが依存性関係ツリー
悪意のあるユーザーがcacheを入れてきたら?
CIでyarn install --check-cacheをしてチェックしておく
2022-01 https://www.linkedin.com/pulse/yarn-3-vs-npm-8-dev-teams-2022-alex-alksne?trk=articles_directory
2019-02-10現在、ReactやVue、Styled-compopnentやMastodonはyarnを使っている
Githubのリポジトリをみるとyarn.lockが存在している
npmとは依存グラフの作り方がちがうらしく、直接的な互換性はない(yarn.lockはpackage-lock.jsonではない)
グローバルに入れたい
yarn global add PACKAGE
yarn global | Yarn
npmのコマンドとの対応表
npm からの移行 | Yarn
v2にする
yarn set version berry
バージョンを戻したい
yarn set version classic
yarn set version classic
v1は開発停止している
https://github.com/yarnpkg/yarn
yarnのインストール
corepackを利用する
https://yarnpkg.com/getting-started/install#install-corepack
バージョンを揃える
yarn policies set-version
via https://twitter.com/azu_re/status/1354614651867160584