yarn、npm、npx の違い
はじめに
Node.js を学ぶ過程で、"yarn"、"npm"、"npx"という用語にたびたび出逢います。これらは JavaScript の開発において頻繁に使われる重要なツールですが、その機能や役割が初学者には混同しやすいものです。本記事では、これらのツールがどのように異なり、どのように役に立つのかを解説したいと思います。
yarn
- タイプ: パッケージマネージャー(ソフトウェアのパッケージとその依存関係を管理)
- 目的: Node.js プロジェクトの依存関係の管理
-
特徴:
- Facebook(meta)によって開発
- キャッシングと並列処理により高速かつ効率的に動作
-
yarn.lock
を使用してインストールされたパッケージのバージョンを固定
- コマンド集(一部):
yarn init # 新しいプロジェクトの package.json ファイルを作成
yarn install # package.json に記載されたすべての依存関係をインストール
yarn add [パッケージ名] # 指定したパッケージをプロジェクトの依存関係に追加。また、package.json と yarn.lock を更新
yarn upgrade [パッケージ名] # 指定したパッケージを最新バージョンにアップグレード
yarn remove [パッケージ名] # 指定したパッケージをプロジェクトから削除。また、package.json と yarn.lock を更新
yarn run [スクリプト] # package.json の scripts に定義されたスクリプトの実行
yarn cache clean # キャッシュクリア
yarn list # インストールされたパッケージの一覧を表示
npm
- タイプ: パッケージマネージャー(ソフトウェアのパッケージとその依存関係を管理)
- 目的: プロジェクトの依存関係の管理や Node.js パッケージを npm レジストリへの公開
-
特徴:
- 広範なライブラリとツールを提供する最大のパッケージレジストリ
- カスタムスクリプトとパッケージライフサイクルイベントをサポート
- Node.js に統合されているため、インストール時に自動的で追加
- コマンド集(一部):
npm init # 新しいプロジェクトの package.json ファイルを作成
npm install # package.json に記載されたすべての依存関係をインストール
npm install [パッケージ名] # 指定したパッケージをプロジェクトの依存関係に追加
npm update [パッケージ名] # 指定したパッケージを最新バージョンにアップグレード
npm uninstall [パッケージ名] # 指定したパッケージをプロジェクトから削除
npm run [スクリプト] # package.json の scripts に定義されたスクリプトの実行
npm cache clean --force # キャッシュクリア(オプションをつけましょう)
npm list # インストールされたパッケージの一覧を表示
npx
- タイプ: パッケージランナー(パッケージをインストールすることなく直接実行するためのツール)
- 目的: グローバルにインストールせずに Node.js パッケージを実行
-
特徴
- npm 5.2 以降で提供
- 事前にインストールすることなく、npm で利用可能な任意のパッケージを実行
- 一時的なコマンドの実行やパッケージのテストに最適
まとめ
パッケージマネージャーは "yarn" or "npm"、パッケージランナーは "npx" です。
"yarn" or "npm" の違いはあまりなさそうです。使う時になったらお好きな方を選択してください。速度が速いみたいなので、筆者の好みは yarn ですが正直違いがわからない。。。