解決済み: node_modules を無視する

開発者であれば、プロジェクト内の「node_modules」フォルダーに遭遇したことがあるでしょう。 これは、JavaScript と TypeScript の世界、特に Node.js を利用するプロジェクトにおいて重要な部分です。 これらの「node_modules」はプロジェクトの DNA のようなもので、コードを正しく実行するために必要なすべてのライブラリや依存関係が含まれます。 問題は、このフォルダーのサイズが急速に大きくなり、特にバージョン管理システムの観点からプロジェクトが重くなる可能性があることです。 さらに、正しく処理しないと、バージョン管理の競合が無数に発生する可能性があります。

この問題に対処する効率的な方法の XNUMX つは、プロジェクト内の `node_modules` を無視することです。 ほとんどのバージョン管理システムは、指定されたファイルまたはディレクトリを除外するメカニズムを提供します。 たとえば、Git では、これは「.gitignore」ファイルを使用して実行できます。 このファイルは、Git が無視するファイルとディレクトリの両方のパターンを指定し、プロジェクトをクリーンかつ大幅に小さく保ちます。

次に、ソリューションを段階的に説明して、より深いレベルで理解しましょう。

1. First, you should make sure you are in the root directory of your project where the `node_modules` resides. You may use the following command:
   ```sh
   cd /path/to/your/project
   ```
2. Next, all you've got to do is create a file named `.gitignore` in your project root, via a simple touch command:
   ```sh
   touch .gitignore
   ```
3. Then, open the newly created `.gitignore` file in your preferred text editor:
   ```sh
   nano .gitignore
   ```
4. Inside this file, simply add: `node_modules/`. This tells Git to ignore the `node_modules` directory.

.gitignore を理解する

`.gitignore` ファイルは、Git をバージョン管理システムとして使用する開発者にとって強力なツールです。 シンプルですが洗練されています。 このファイル内のパターンは、リポジトリ内のファイルおよびディレクトリと照合され、一致するものは Git によって無視されます。 つまり、Git は変更を追跡せず、コミット、プッシュ、プルのアクションに変更を含めません。

  • `.gitignore` の各行はパターンを指定します。 たとえば、`*.tmp` はすべての .tmp ファイルを無視します。
  • 「#」で始まる行はコメントであり、何の効果もありません。
  • ディレクトリ名は「node_modules/」のように「/」で終わります。
  • 「!」で始まるパターンはパターンを否定し、Git が一致するファイルを無視しないようします。

npmとpackage.json

JavaScript の依存関係を管理する場合、「package.json」の重要性を見落とさないことが重要です。 この JSON ファイルには、依存関係やそれぞれのバージョンのリストなど、プロジェクトに関するさまざまなメタデータが含まれています。

  • `package.json` 内の `dependency` キーは、アプリケーションの実行に必要なパッケージを指定します。
  • `devDependency` キーは、テスト ライブラリなど、アプリケーションの開発にのみ必要なパッケージを指定します。

`npm install` を実行するだけで、npm は `package.json` に記述されているすべてのパッケージを取得し、それらを `node_modules` ディレクトリ内にインストールします。 したがって、バージョン管理システムの `node_modules` ディレクトリを無視したとしても、いつでもプロジェクトの依存関係を `package.json` ファイルから取得できます。

関連記事:

コメント