メインコンテンツまでスキップ

パッケージ

現代のTypeScript/JavaScript開発では、すべてをゼロから書くことはほとんどありません。日付の操作、HTTPリクエスト、バリデーションなど、よくある処理には先人が作ったパッケージが公開されています。パッケージを活用することで、車輪の再発明を避け、より重要なアプリケーション固有のロジックに集中できます。

たとえば、次のようなパッケージは広く使われています。

  • zod ─ データのバリデーションを型安全に行うパッケージ
  • Express ─ Webサーバーを構築するためのパッケージ
  • lodash ─ 配列やオブジェクトの操作を便利にするユーティリティパッケージ
  • date-fns ─ 日付の操作を扱うパッケージ

これらはすべて、他の開発者が作成し、公開しているパッケージです。npm installコマンドひとつでプロジェクトに導入できます。

なぜパッケージについて学ぶ必要があるのか

実務のTypeScript開発では、パッケージを使わないプロジェクトはほぼ存在しません。パッケージの基本を理解していないと、次のような場面で困ることになります。

  • プロジェクトのセットアップ時に、何をインストールすればいいかわからない
  • エラーが出たときに、それがパッケージの問題なのか自分のコードの問題なのか判断できない
  • チームメンバーが使っているツールやライブラリの導入手順が理解できない

この章では、パッケージとは何か、どのようにインストールし、どのように使うのかをひととおり学びます。

この章の構成

この章は次のページで構成されています。上から順に読み進めることをお勧めします。

パッケージとモジュールの違い

パッケージと似た用語にモジュールがあります。この2つは異なる概念です。

モジュールは、1つのJavaScript/TypeScriptファイルを指します。exportimportを使って、ファイル間で値をやり取りする仕組みです。

パッケージは、package.jsonというメタデータファイルと、複数のファイル群をまとめた配布単位です。パッケージの中には、1つ以上のモジュールが含まれています。

たとえば、zodというパッケージをインストールすると、node_modules/zod/ディレクトリの中にpackage.jsonと多数のJavaScriptファイル(モジュール)が配置されます。開発者はそのパッケージが提供するモジュールをimportして使います。

モジュールの詳細については、次のページを参照してください。

パッケージとライブラリの違い

もうひとつ紛らわしい用語にライブラリがあります。

ライブラリは、特定の機能を提供するコードの集まりを指す概念的な用語です。「日付操作のライブラリ」「HTTPクライアントのライブラリ」のように、機能の種類を表すときに使われます。

パッケージは、そのライブラリを配布可能な形にまとめたものです。package.jsonでバージョンや依存関係を管理し、パッケージレジストリ(npmjs.comなど)を通じて配布します。

実務では「パッケージ」と「ライブラリ」はほぼ同義で使われることも多いです。厳密に区別する必要はありませんが、「ライブラリは概念、パッケージは配布形態」と覚えておくと整理しやすくなります。

学びをシェアする

・パッケージはpackage.jsonとファイル群を持つ配布単位
・モジュールは1つのJS/TSファイル、パッケージはモジュールの集合体
・ライブラリは機能の概念、パッケージはその配布形態
・現代のTypeScript開発ではパッケージの利用がほぼ必須

『サバイバルTypeScript』より

この内容をXにポストする