npm, yarn, pnpm, bunなどのパッケージマネージャーについて

目次

    フロントエンド開発でパッケージ管理に利用される npm(エヌピーエム)、yarn(ヤーン)、pnpm(ピーエヌピーエム)、bun(バン) について、それぞれ解説します。

    パッケージとは?

    パッケージとは、再利用可能なコードの集まりのことです。JavaScriptやNode.jsの世界では、これらのパッケージは特定の機能や問題を解決するためのコードをまとめたものです。
    以下はパッケージの例です。

    • React: ユーザーインターフェースを構築するためのライブラリ
    • Sass/SCSS: CSSを拡張した言語で、変数、ネスト、ミックスインなどの機能を追加
    • Axios: HTTPリクエストを簡単に行うためのライブラリ

    パッケージマネージャー(npm、yarn、pnpm、bun)は、これらのパッケージをインストール、更新、管理するためのツールです。npm install react のようなコマンドを実行すると、パッケージマネージャーが自動的にパッケージをダウンロードし、プロジェクトで使えるようにセットアップします。

    各パッケージマネージャーについて

    npm(Node Package Manager)

    npmはNode.jsをインストールすると、自動的にインストールされます。
    最も古いパッケージマネージャーです。

    yarn

    Facebookが開発したnpm代替パッケージマネージャー。
    npmの問題点(当時の速度や安全性の問題)を解決するために作られました。
    並列インストールにより高速化され、キャッシュの活用で再インストールが速くなりましたが、現在ではnpmも高速化され劇的な違いは無くなりました。

    pnpm

    すべてのプロジェクトで同じパッケージを共有するシンボリックリンクを使用することで、複数のプロジェクトで同じパッケージを使う場合、ディスク容量を大幅に節約できるようになりました。

    厳格な依存関係の分離による安全性の向上も図られています。

    bun

    最も新しいツール(2023年に1.0が登場したばかり)で、単なるパッケージマネージャーではなく、JavaScriptランタイム(JavaScriptコードを実行するための環境や実行システムのこと。他にはNodeやDenoなどがあります)・ビルダー・テストランナーも含みます。

    Zigという言語で書かれており、非常に高速に動作し、インストールやランタイム実行速度でnpm、yarn、pnpmを大きく上回るベンチマークとなっています。

    ただ、新しいこともあり、互換性や安全性はまだ不安定なところがあるので、今後の情報を踏まえながら使っていきましょう。

    • マンツーマン
      個別講義開催中!

      エラーの解消から、
      実装方法まで丁寧に教えます!
      講師が答えられるなら、
      基本的にどんな内容でも
      OK!

      詳細はこちら!
    • 質問し放題プラン!
    • スクール形式講義も

      プロを目指したい方
      講義を何回も受けたい方はこちら!
      個別のカリキュラムを作成し、
      長期的にサポート!

      詳細はこちら!
    • discordコミュニティ
    記事一覧へ