npmに代わるNodeパッケージマネージャーyarn

yarn

https://yarnpkg.com/

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.

http://blog.npmjs.org/post/151660845210/hello-yarn

新しいレジストリも作るのかと一瞬思ったけど、どうやらそうではなく、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

pipeasy_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]