Node.js プロジェクトにパッケージを追加する

完了

Node.js には、ファイル管理や HTTP 処理などのタスク用の組み込みパッケージがあります。 しかし、npm レジストリには、多種多様なサードパーティ製パッケージが存在します。

npm パッケージを選択するタイミングと方法

Tailwind Traders の新しい開発者であるあなたは、プロジェクトに機能を追加する必要があります。 あなたはコードを自分で記述することもできますが、既存のパッケージを使用することを決断します。 この開発上の決定は一般的なシナリオです。

既存のパッケージを使用する必要があるのはどんな場合ですか? 次に、考慮すべき点をいくつか示します。

  • 品質:セキュリティなどのタスクでは、確立されたパッケージを使用することで、自分がベスト プラクティスに従いエッジ ケースを処理していることを保証できます。
  • 効率性:独自のコードの記述には時間がかかります。 既存のパッケージを使用することで、かなりの作業量を節約できます。
  • メンテナンス: ライブラリには、更新とバグ修正が必要です。 多くの場合、オープンソース チームがこれを処理できるようにする方が効率的です。

開発者は、以下のようなさまざまなソースからパッケージを見つけてダウンロードできます。

  • レジストリ:レジストリとは、npm レジストリのようなパッケージのコレクションです。 独自のレジストリをホストすることもできます。
  • リポジトリ:GitHub URL から直接パッケージをインストールできます。
  • Files: パッケージは、ローカル フォルダーまたは ZIP ファイルからインストールでき、独自のパッケージをテストするのに便利です。
  • ディレクトリ:ディレクトリから直接インストールすることもできます。

パッケージを選択したら、その依存関係を確認して、以下の要素を検討します。

  • サイズ:依存関係が多いことは、フットプリントが大きいことを意味します。 フットプリント サイズは、帯域幅やハードウェアの制限がある場合に重要となります。 パッケージをインストールすると、その依存関係もインストールされることを忘れないでください。 これにより、node_modules フォルダーが大きくなる可能性があります。
  • 人気:パッケージの人気は、その品質を表している可能性があります。
  • ライセンス:自分のソフトウェアを販売する予定の場合は、すべての依存関係パッケージ ライセンスが再利用と再販を許可していることを確認します。
  • アクティブなメンテナンス:非推奨であったりめったに更新されない依存関係は避けます。

パッケージの詳細については、npm と GitHub リポジトリ上のパッケージ ページにアクセスしてください。 npm コマンド npm view <package name> を使用することもできます。

パッケージをインストールする方法

パッケージをインストールするには、Node.js と共にインストールされた npm CLI 使用します。 ターミナル内で npm install コマンドを使用して Node.js プロジェクトにパッケージを追加できます。

npm install <name of package>

install コマンドを実行すると、コマンドライン ツールはグローバル レジストリに接続し、コードをフェッチし、それをプロジェクトのルートにある node_modules フォルダーに配置します。

インストール コマンドの一般的なスイッチの一部を以下に示します。

  • 開発専用パッケージに対しては、--save-dev を使用します。 このスイッチは、package.jsondevDependencies プロパティの中に保存されます。 これらの依存関係は通常、フォーマット、リント、ビルド、トランスパイル、テストのツールです。
  • 運用専用パッケージに対しては、--production を使用します。 このスイッチは、開発専用パッケージを除外します。
  • グローバルに利用可能なツールに対しては、-g を使用します。 コマンドライン ツールは、多くの場合、プロジェクトにインポートされるのではなく、グローバルにインストールされます。 グローバルな依存関係は、プロジェクトレベルの node_modules ではなく、システム全体のディレクトリにインストールされます。 しかし、グローバル パッケージはシステムを乱雑にする可能性があります。 npx コマンドは、パッケージを一時的にインストールすることでこれを解決します。 npx <name> を使用してパッケージをフェッチして実行した後、それを削除します。

インストール後、プロジェクト ディレクトリは次の例のようになります。

package.json
node_modules/
  <name of dependency>/
    <files included in the dependency>
src
  index.js

npm CLI コマンド

npm コマンドライン ツールには、パッケージのインストール、パッケージの作成、Node.js プロジェクトの初期化などのタスクに役立つ多数のコマンドが用意されています。

npm コマンドは、以下のカテゴリに分類されます。

  • 依存関係の管理:パッケージのインストール、更新、削除のためのコマンド。
  • スクリプトの実行:テストやコードのビルドなどの開発フローを管理するためのコマンド。
  • 環境の構成:インストール パスとパッケージ ソースを設定するためのコマンド。
  • パッケージの作成と公開:パッケージの作成と公開のためのコマンド。

すべてのコマンドの詳細な一覧を確認するには、ターミナルで次のコマンドを入力します。

npm --help

インストールを検証する

package.json フォルダー内の内容を確認するには、npm list を使用します。 npm list コマンドは、インストールされた node_modules ディレクトリ内のすべてのパッケージを一覧表示します。 インストールされた各パッケージは、それ自身の依存関係をインストールします。

list コマンドは、長いリストを出力し、理解するのが難しくなる可能性があるため、list コマンドではさまざまな深さでパッケージを一覧表示できます。 詳細レベル 0 では、このコマンドによって、package.json の dependencies セクションと同じ内容が一覧表示されます。

npm list --depth=<depth>

Jest パッケージをインストールした場合、npm list --depth=0 によって次の出力と同様の出力が生成されます。

├── jest@26.0.1

依存関係のクリーンアップ

パッケージが不要になった場合は、パッケージを削除します。 依存関係を削除すると、プロジェクトはクリーンに保たれ、領域が節約されます。 このクリーンアップは、特に Angular、React、Vue などのシングル ページ アプリケーション (SPA) で重要です。 これらのアプリは、ブラウザーに提供されるファイルにコードをバンドルして圧縮します。 このファイルが大きいほど、読み込みにかかる時間が長くなり、ユーザーを阻む可能性があります。

不要になった依存関係をクリーンアップする方法は 2 つあります。

  • アンインストール: パッケージをアンインストールするには、npm uninstall <name of dependency> を実行します。 このコマンドは、パッケージを package.json マニフェスト ファイルと node_modules フォルダーから削除します。
  • 排除:npm prune を使用して、一覧表示されない依存関係をすべて node_modules から削除します。 排除は、複数の依存関係をそれぞれに対してアンインストールを実行することなく削除したい場合に便利です。 排除するには:
    1. 該当エントリを package.json 内の dependencies または devDependencies から削除します。
    2. run npm prune