yarnとnpmの違い
パッケージマネージャーとは
-
パッケージマネージャー
は、コンピュータープログラムやライブラリ(ソフトウェアの一部)を簡単に管理し、ダウンロード・インストール・アップデートするためのツールやシステムです。 - フロントエンドで開発する上で
npm
やyarn
は必須のツールとなります。
イメージ
: パッケージマネージャーは、ソフトウェアやライブラリを管理する魔法の箱のようなものです。
ダウンロードと管理
: パッケージマネージャーは、コンピューターに新しいソフトウェアやライブラリをダウンロードし、インストールする手続きを簡単にしてくれます。
アップデート
: パッケージマネージャーは、コンピューター上のソフトウェアを最新のバージョンに保つのにも役立ちます。新しいバージョンがリリースされたとき、パッケージマネージャーはそれを自動的に見つけてインストールできるようにしてくれます。
依存関係の解決
: ソフトウェアやライブラリは、他のソフトウェアやライブラリに依存することがありますが、これらの依存関係を自動的に解決し、必要なものを一緒にダウンロード・インストールします。
セキュリティと信頼性
: パッケージマネージャーは、ソフトウェアが信頼性があり、セキュリティに問題がないことを確認するために役立ちます。
具体的な例
: 一般的なパッケージマネージャーとして「APT」(DebianやUbuntuなどのLinuxシステムで使用)や「Homebrew」があります。
パッケージマネージャーは、ソフトウェアのダウンロードと管理を簡単かつ効率的に行うための便利なツールです。
package.jsonとは
Node.js
のプロジェクトで使用されるファイルで、プロジェクトの情報を保存します。
このファイルは、アプリケーションの依存性などを記録するために使用されます。
-
ライブラリの管理
:プロジェクトで使用したライブラリとそのバージョンを記録します。これにより、他の開発者が同じライブラリを簡単にインストールできます。 -
スクリプトの実行
:ビルドやテストなどのコマンドを管理します。これにより、コマンドプロンプトやターミナルからコマンドを実行できます。 -
package.json
ファイルは、yarn init
やnpm init
コマンドを実行することで生成できます。 -
このファイルはプロジェクトのルートディレクトリに保存されます。
yarnとは
- 2016年にFacebook社がリリースしました。
- パッケージをインストールする速さが魅力で、
npm
よりもインストールが速いとされています。 -
yarn.lock
がロックファイルとして機能します。
使用方法
インストール方法
npm install --global yarn
- 公式より、
Yarn
をシステムにインストールするときにNode.js
にバンドルされているnpm
パッケージマネージャーを介してインストールすることをお勧めしています。 - 上手くいかない場合は、代替案が公式サイトにあるので参考にしてください。
バージョンの確認
yarn --version
新しいプロジェクトの開始
yarn init
- コマンドで新しいプロジェクトを開始し、
package.json
ファイルを作成します。
パッケージをインストール
yarn add パッケージ名
- パッケージをインストールします。
パッケージをアップグレードする
yarn upgrade
- パッケージをアップグレードします。
パッケージをアンインストールする
yarn remove パッケージ名
- パッケージをアンインストールします。
npmとは
-
npm は
Node Package Manager
の略です。 - 2010年にnpm社がリリースし、2020年にGithub社が買収しました。
- 公式のパッケージマネージャーで、Windowsなどで
Node.js
をインストールすると一緒に付いてきます。 -
package-lock.json
がロックファイル(v7以降)として機能します。
使用方法
- Node.jsをインストールすると、npmも一緒にインストールされます。
- Windows10では、Node.jsの公式サイトからインストーラーをダウンロードし、それを実行することでNode.jsとnpmをインストールできます4。
パッケージのインストール
npm install <パッケージ名>
パッケージのアンインストール
npm uninstall <パッケージ名>
パッケージのバージョン管理
package.json
というファイルにインストールしたパッケージの情報が記録され、これにより複数人で開発しても同じバージョンのパッケージを使って開発を行うことができます。
パッケージの依存関係の管理
package-lock.json
というファイルに各パッケージの依存関係が記録され、これによりパッケージの依存関係を解決します。
yarnとnpmの違い
yarn
yarnのメリット
- インストール速度が速い。
-
npm
より厳密にモジュールのバージョンを固定できる。
:yarn.lock
ファイルで、各パッケージのインストールバージョンを固定できる。 - コマンドがシンプルで使いやすいとされている。
-
npm
と一緒に使える。
:npm
と同じのpackage.json
が使えるため、同一プロジェクトでnpm
oryarn
で固定しなくて良い。
yarnのデメリット
- 非公式のパッケージマネージャーであるため、
Node.js
をインストールしただけでは使用できません。
npm
npmのメリット
-
Node.js
をインストールすると一緒に付いてくるため、すぐに使い始めることができます。v7以降、ロックファイルとしてpackage-lock.json
が存在します。
npmのデメリット
- インストール速度が
yarn
に比べて遅いとされています。
まとめ
-
「yarnとnpmはどっちがいいか」は、どちらも同じような機能を提供しているから、具体的な使用状況や個人の好みによります。
-
npm
はNode.js
にデフォルトで含まれていて、インストールが簡単だし、長い間使われてきたから安定性があります。 -
一方、
yarn
はパフォーマンスやセキュリティに優れていると言われています。また、yarn.lock
ファイルを使うことで、全ての開発者が同じバージョンのパッケージを使うことができるので、バージョン管理も楽ちんです。 -
個人的には、どちらを選んでも問題ないと思います。ただ、プロジェクトの他のメンバーが何を使っているか、またはプロジェクト自体が何を推奨しているかを確認して使っていきましょう。
参考文献
Discussion