[NodeJS] npm install を爆速で行うyarnに入門
こんにちは、@yoheiMuneです。
Reactなどの案件をしていると
https://yarnpkg.com/en/docs/cli/
また、npmとのコマンド比較も用意されています。
https://yarnpkg.com/en/docs/migrating-from-npm#toc-cli-commands-comparison
最後になりますが本ブログでは、Node.js・Python・Linux・フロントエンド・インフラ・Go言語・開発関連・Swift・Java・機械学習など雑多に情報発信をしていきます。自分の第2の脳にすべく、情報をブログに貯めています。気になった方は、本ブログのRSSやTwitterをフォローして頂けると幸いです ^ ^。
最後までご覧頂きましてありがとうございました!
Reactなどの案件をしていると
npm install
重たいなーと思っていたら、yarn
という高速なツールがあることを知りました。今日はそのyarnについてブログを書きたいと思います。目次
yarnとは
yarnとはnpmに代わる依存パッケージ管理ツールの1つで、npmに比べて非常に高速に動作します。yarnの特徴は以下の3つで表されています。- Ultra Fast
- ローカルPCへのキャッシュや並行ロードなどで速い
- Mega Secure
- ダウンロードしたモジュールについて、checksumを確認してからコードを実行する(改ざんされていないことを確認する)
- Super Reilable
- yarn.lockファイルなどを用いてどこでも同じ環境を構築できる
yarnのインストール
インストール方法はこちら(Mac, Windows, Linux, その他)にあります。例えばMacの場合には、以下のようにHomeBrewでインストールできます。brew update brew install yarnただ、僕の場合には
brew install yarn
で以下のようなエラーが発生しました。brewでnodejsを入れていなかったのが原因のようです。$ brew install yarn Error: You must `brew link node` before yarn can be installed言われた通りに
brew link node
をすると、次はこんなエラーが・・・。$ brew link node Linking /usr/local/Cellar/node/7.5.0... Error: Could not symlink bin/node Target /usr/local/bin/node already exists. You may want to remove it: rm '/usr/local/bin/node' To force the link and overwrite all conflicting files: brew link --overwrite node To list all files that would be deleted: brew link --overwrite --dry-run nodeなので、さらに言われた通りにコマンドを実行します。
$ rm '/usr/local/bin/node' $ brew link --overwrite nodeこれで無事に入ったようで、再度以下のコマンドを行うとインストールが成功しました。
$ brew install yarn最後に以下のコマンドが動けばOKです。
$ yarn --version
yarnプロジェクトを作成する
以下のコマンドでyarnのプロジェクトを作成することができます。$ yarn init何度かエンターを押すと以下のpackage.jsonが作成できます(npm initと大体一緒ですね)。
{ "name": "tmp", "version": "1.0.0", "main": "index.js", "license": "MIT" }ここで例えばReactを追加する場合には、
yarn add
を使います。$ yarn add react
devDependencies
としてインストールする場合には--dev
または-D
オプションを使います。$ yarn add --dev babel-core上記の結果、ReactやBabelCoreがpackage.jsonに入りました。
{ "name": "tmp", "version": "1.0.0", "main": "index.js", "license": "MIT", "dependencies": { "react": "^15.4.2" }, "devDependencies": { "babel-core": "^6.23.1" } }また、以下のような
yarn.lock
ファイルが作成されます。これをgitなどにコミットして使うことで、チームメンバー間で同じ環境を作ることができます。$ head -15 yarn.lock # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. # yarn lockfile v1 ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" asap@~2.0.3: version "2.0.5" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f"
既存のpackage.jsonをyarnへ移行する
移行するといってもやることは1つだけで、以下のようにyarn
コマンドを実行すればOKです。$ yarnこれで
yarn.lock
ファイルもできて、今後はyarnで運用することができます(速く動くので便利です)。yarnのコマンド一覧と、npmコマンドとの比較表
yarnのコマンド一覧は以下にあります。基本的にはnpmと同じようなコマンドが用意されています。https://yarnpkg.com/en/docs/cli/
また、npmとのコマンド比較も用意されています。
https://yarnpkg.com/en/docs/migrating-from-npm#toc-cli-commands-comparison
yarnのキャッシュの一覧と保存先
yarnのキャッシュは、以下のコマンドで確認したり削除したりすることができます。# キャッシュ一覧を確認する $ yarn cache ls # キャッシュの保存先を確認する $ yarn cache dir # キャッシュを削除する $ yarn cache clean
yarnのコマンドヘルプ
yarnのコマンドヘルプは、--help
オプションをつけることで確認することができます。# yarn全体について調べる yarn --help # 特定のコマンドの使い方を調べる $ yarn [command] --help # 例:addコマンドのヘルプを表示する $ yarn add --help
最後に
npm installなどコマンドが速くなるのは嬉しいですね。最近VagrantからDockerに切り替えた理由も処理が高速な点でしたが、そんな細かい点から開発改善できるといいなーと思う今日この頃です。最後になりますが本ブログでは、Node.js・Python・Linux・フロントエンド・インフラ・Go言語・開発関連・Swift・Java・機械学習など雑多に情報発信をしていきます。自分の第2の脳にすべく、情報をブログに貯めています。気になった方は、本ブログのRSSやTwitterをフォローして頂けると幸いです ^ ^。
最後までご覧頂きましてありがとうございました!