🎃

yarnとnpmの違い

2023/11/05に公開

パッケージマネージャーとは

  • パッケージマネージャーは、コンピュータープログラムやライブラリ(ソフトウェアの一部)を簡単に管理し、ダウンロード・インストール・アップデートするためのツールやシステムです。
  • フロントエンドで開発する上でnpmyarnは必須のツールとなります。

イメージ
: パッケージマネージャーは、ソフトウェアやライブラリを管理する魔法の箱のようなものです。

ダウンロードと管理
: パッケージマネージャーは、コンピューターに新しいソフトウェアやライブラリをダウンロードし、インストールする手続きを簡単にしてくれます。

アップデート
: パッケージマネージャーは、コンピューター上のソフトウェアを最新のバージョンに保つのにも役立ちます。新しいバージョンがリリースされたとき、パッケージマネージャーはそれを自動的に見つけてインストールできるようにしてくれます。

依存関係の解決
: ソフトウェアやライブラリは、他のソフトウェアやライブラリに依存することがありますが、これらの依存関係を自動的に解決し、必要なものを一緒にダウンロード・インストールします。

セキュリティと信頼性
: パッケージマネージャーは、ソフトウェアが信頼性があり、セキュリティに問題がないことを確認するために役立ちます。

具体的な例
: 一般的なパッケージマネージャーとして「APT」(DebianやUbuntuなどのLinuxシステムで使用)や「Homebrew」があります。

パッケージマネージャーは、ソフトウェアのダウンロードと管理を簡単かつ効率的に行うための便利なツールです。

package.jsonとは

Node.jsのプロジェクトで使用されるファイルで、プロジェクトの情報を保存します。
このファイルは、アプリケーションの依存性などを記録するために使用されます。

  • ライブラリの管理
    :プロジェクトで使用したライブラリとそのバージョンを記録します。これにより、他の開発者が同じライブラリを簡単にインストールできます。

  • スクリプトの実行
    :ビルドやテストなどのコマンドを管理します。これにより、コマンドプロンプトやターミナルからコマンドを実行できます。

  • package.jsonファイルは、yarn initnpm 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とは

  • npmNode 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のメリット

  1. インストール速度が速い。
  2. npmより厳密にモジュールのバージョンを固定できる。
    : yarn.lockファイルで、各パッケージのインストールバージョンを固定できる。
  3. コマンドがシンプルで使いやすいとされている。
  4. npmと一緒に使える。
    : npmと同じのpackage.jsonが使えるため、同一プロジェクトでnpmoryarnで固定しなくて良い。

yarnのデメリット

  1. 非公式のパッケージマネージャーであるため、Node.jsをインストールしただけでは使用できません。

npm

npmのメリット

  1. Node.jsをインストールすると一緒に付いてくるため、すぐに使い始めることができます。v7以降、ロックファイルとしてpackage-lock.jsonが存在します。

npmのデメリット

  1. インストール速度がyarnに比べて遅いとされています。

まとめ

  • 「yarnとnpmはどっちがいいか」は、どちらも同じような機能を提供しているから、具体的な使用状況や個人の好みによります。

  • npmNode.jsにデフォルトで含まれていて、インストールが簡単だし、長い間使われてきたから安定性があります。

  • 一方、yarnパフォーマンスやセキュリティに優れていると言われています。また、yarn.lockファイルを使うことで、全ての開発者が同じバージョンのパッケージを使うことができるので、バージョン管理も楽ちんです。

  • 個人的には、どちらを選んでも問題ないと思います。ただ、プロジェクトの他のメンバーが何を使っているか、またはプロジェクト自体が何を推奨しているかを確認して使っていきましょう。

参考文献

https://classic.yarnpkg.com/en/
https://qiita.com/senou/items/d939601e32c0005ebfe3
https://qiita.com/akitaaa/items/c97ff951ca31298f3f24
https://zenn.dev/hinoshin/articles/aadfdd7ba958a9

Discussion