npmでローカルモジュールをインストールする
npm (Node Package Manager) は、JavaScriptプロジェクトで外部のコードライブラリ (モジュール) を管理するツールです。ローカルモジュールとは、プロジェクトのディレクトリ内にインストールされたモジュールで、そのプロジェクト内でのみ使用できます。
手順:
-
プロジェクトディレクトリに移動
cd your-project-directory
-
npm init -y
-
npm install my-local-module
package.json
ファイルの更新:
インストールされたモジュールは、package.json
ファイルの dependencies
オブジェクトにリストされます。
{
"name": "your-project-name",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies ": {
"my-local-module": "^1.0.0"
}
}
モジュールの使用:
インストールされたモジュールをJavaScriptファイルで使用する場合は、require()
関数を使用します。
const myModule = require('my-local-module');
// モジュールの機能を使用
myModule.doSomething();
重要なポイント:
npm install
コマンドは、モジュールとその依存関係を自動的にインストールします。- モジュールバージョンを指定することで、プロジェクトの依存関係を管理することができます。
- ローカルモジュールは、プロジェクトのディレクトリ内にインストールされ、他のプロジェクトでは使用できません。
ローカルモジュールを作成する
① 新規ディレクトリを作成し、モジュールとして必要なファイルを作成します。
mkdir my-local-module
cd my-local-module
touch index.js
② index.js
にモジュールの機能を実装します。
// index.js
exports.hello = function(name) {
console.log(`Hello, ${name}!`);
};
③ package.json
を作成します。
npm init -y
メインプロジェクトでローカルモジュールをインストールする
① メインプロジェクトのディレクトリに移動します。
cd your-project
② ローカルモジュールをインストールします。
npm install ../my-local-module
③ メインプロジェクトのファイルでモジュールを使用します。
// index.js
const myModule = require('../my-local-module');
myModule.hello('World');
コード例解説
myModule.hello('World');
:- モジュールの
hello
関数を呼び出し、引数として'World'
を渡します。
- モジュールの
const myModule = require('../my-local-module');
:require()
関数でモジュールを読み込み、myModule
変数に代入します。../my-local-module
: モジュールのパスを指定します。
npm install ../my-local-module
:../
: 親ディレクトリを指す相対パスです。my-local-module
: インストールしたいモジュールのディレクトリ名です。- このコマンドを実行すると、
node_modules
ディレクトリ内にmy-local-module
がインストールされ、package.json
のdependencies
に登録されます。
- package.json の dependencies に直接パスを指定する方法
"dependencies": { "my-local-module": "file:../my-local-module" }
- npm link を使った方法
ローカルモジュールとメインプロジェクトをリンクし、開発中のモジュールの変更をすぐに反映させたい場合に便利です。# ローカルモジュールディレクトリで npm link # メインプロジェクトディレクトリで npm link my-local-module
上記は、ローカルモジュールをインストールして使用する基本的な手順です。プロジェクトの規模や複雑さによって、より詳細な設定が必要になる場合があります。
ポイント
package.json
のdependencies
には、インストールされたモジュールの情報が記録されます。npm link
は開発中のモジュールを素早く試したい場合に便利です。- 相対パスを正しく指定することが重要です。
- yarn
npm の代替ツールとして、yarn もよく利用されます。 - npm workspaces
複数のプロジェクトを一つのワークスペースで管理したい場合に便利です。 - グローバルインストール
-g
オプションを付けてグローバルにインストールすることもできますが、一般的にはローカルインストールが推奨されます。
npm link を利用する
npm link は、開発中のモジュールを別のプロジェクトにシンボリックリンクで接続する方法です。
メリット
- グローバルにインストールする必要がないため、プロジェクトごとに異なるバージョンのモジュールを使用できます。
- モジュールの変更が即座に反映されるため、開発効率が向上します。
- 複数のプロジェクトで同じモジュールを使用する場合、リンクの管理が煩雑になることがあります。
- プロジェクト構造が複雑になる可能性があります。
- モジュールディレクトリで
npm link
- メインプロジェクトディレクトリで
npm link モジュール名
package.json の dependencies に直接パスを指定する
package.json の dependencies に、インストールしたいモジュールの絶対パスまたは相対パスを直接記述する方法です。
- npm link よりもシンプルな方法です。
- 明確にモジュールの位置を指定できます。
- モジュールの場所を変更した場合、package.json も修正する必要があります。
例
{
"dependencies": {
"my-local-module": "file:../my-local-module"
}
}
yarn workspaces を利用する
- 共通の依存関係を簡単に管理できます。
- 複数のプロジェクトを同時に開発できます。
- セットアップが少し複雑です。
npm install のオプションを利用する
npm install には、さまざまなオプションがあります。例えば、--save-dev
オプションは、開発環境で使用するモジュールをインストールする際に使用します。
npm install ../my-local-module --save-dev
どの方法を選ぶべきか
- 開発環境と本番環境で異なるモジュールを使用したい場合
--save-dev
オプション - 複数のプロジェクトを同時に開発したい場合
yarn workspaces - モジュールの場所を明確に指定したい場合
package.json に直接パスを指定 - 開発中のモジュールを頻繁に更新したい場合
npm link
- npm ci
package.json
に記述された依存関係を厳密にインストールします。 - プライベートレジストリ
自社のプライベートな npm レジストリを作成し、社内でのモジュール共有を行うことができます。
npm でローカルモジュールをインストールする方法は、プロジェクトの規模や開発スタイルによって最適なものが異なります。それぞれの方法の特徴を理解し、適切な方法を選択することで、より効率的な開発が可能になります。
- yarn workspaces の他にも、pnpm workspaces など、同様の機能を提供するツールがあります。
- npm workspaces は、npm 7 以降で利用できます。
javascript node.js npm