npmに代わるNodeパッケージマネージャーyarn
yarn
FacebookとExponent, Google, Tildeとの共同チームによって生まれた新しいパッケージマネージャー
Yarn pulls packages from registry.yarnpkg.com, which allows them to run experiments with the Yarn client. This is a proxy that pulls packages from the official npm registry, much like npmjs.cf.
新しいレジストリも作るのかと一瞬思ったけど、どうやらそうではなく、npmレジストリを利用するための新しいクライアントのようだ。よかった。
npmjsのブログを見る限りはyarnのリリースにかなり好意的。でもnpm Inc.がyarn開発からハブられたのはなぜなのか。
特徴
https://bower.io/blog/2016/using-bower-with-yarn/
bowerのブログを参考にまとめる。ただ、yarnとbowerは今は共存してない様子。
Lockfile
ユーザーやデバイス間にまたがるプロジェクトのライブラリのバージョン違いをなくす。npmでいうshrinkwrap
機能。チーム開発していると頻発するので嬉しい。
Security
パッケージをインストールする前にパッケージをチェックしてセキュリティを高める。キャッシュを使うのもセキュリティ面で効果があるんだろう。
Offline
洗練されたキャッシュシステムで、パッケージのインストールにかかる時間を大幅に減らし、またオフラインでも使用可能になる。速い。
インストール
npm install --global yarn
pip
をeasy_install
したのを思い出した。
使い方
npmとのコマンド対応表
https://yarnpkg.com/en/docs/migrating-from-npm#toc-cli-commands-comparison
npm | Yarn |
---|---|
npm install | yarn install |
(N/A) | yarn install --flat |
(N/A) | yarn install --har |
(N/A) | yarn install --no-lockfile |
(N/A) | yarn install --pure-lockfile |
npm install [package] | (N/A) |
npm install --save [package] | yarn add [package] |
npm install --save-dev [package] | yarn add [package] --dev |
(N/A) | yarn add [package] --peer |
npm install --save-optional [package] | yarn add [package] --optional |
npm install --save-exact [package] | yarn add [package] --exact |
(N/A) | yarn add [package] --tilde |
npm install --global [package] | yarn global add [package] |
npm uninstall [package] | (N/A) |
npm uninstall --save [package] | yarn remove [package] |
npm uninstall --save-dev [package] | yarn remove [package] |
npm uninstall --save-optional [package] | yarn remove [package] |
(N/A) | yarn upgrade [package] |