パッケージ管理したい(npm)
$ brew install node
$ node --version
v26.7.0
$ npm --version
11.19.0
$ npx --version
11.19.0
npmコマンドを使ってNodeパッケージを管理できます。
一時的にパッケージを利用するためのnpxコマンドもあります。
注釈
npxコマンドを使うにはネットワーク環境が必要です。
パッケージを追加したい(npm install)
$ npm install パッケージ名
$ npm -g install パッケージ名
installコマンドでパッケージを追加できます。
追加したパッケージはpackage.jsonにも追記され、プロジェクト内の管理に利用できます。
-gオプションを使ってグローバルにインストールできます。
グローバルにインストールしたパッケージはPCのどこからでもコマンドとして使えるようになり、
プロジェクトごとにインストールしなおす必要がなくなります。
一方、プロジェクトごとにバージョンを固定したいパッケージ(typescriptやrollupなど)は、
-gを付けずにローカルへインストールするのが基本です。
注釈
-gオプションをつける位置は、npmのあとでも、installのあとでもよいです。
$ npm -g install パッケージ名
$ npm install -g パッケージ名
開発用としてインストールしたい(--save-dev)
$ npm install --save-dev パッケージ名
$ npm install -D パッケージ名
--save-dev(-D)オプションを付けると、package.jsonのdevDependenciesにパッケージが記録されます。
テストツールやビルドツールなど、開発時にだけ必要でプロジェクトの実行には不要なパッケージに使います。
パッケージを削除したい(npm uninstall)
$ npm uninstall パッケージ名
$ npm -g uninstall パッケージ名
uninstallコマンドでパッケージを削除できます。
installと同じように-gを付けると、グローバルにインストールしたパッケージを削除できます。
インストール済みのパッケージを確認したい(npm list)
$ npm list
$ npm list --depth=0
$ npm -g list --depth=0
listコマンドで、インストール済みのパッケージを確認できます。
依存関係も含めてすべて表示されるため、直接インストールしたパッケージだけを見たい場合は--depth=0を付けます。
パッケージの更新を確認したい(npm outdated)
$ npm outdated
outdatedコマンドで、インストール済みのパッケージに新しいバージョンがあるかを確認できます。
現在のバージョン・package.jsonが許容する最新バージョン・実際の最新バージョンが一覧表示されます。
オススメのパッケージ
$ npm -g install all-the-package-names
$ npm -g install npm-check-updates
all-the-package-namesを追加すると、 インストール時にパッケージ名を補完してくれるようになります。
npm-check-updatesを追加すると、
npm outdatedよりも簡単に、package.jsonごと最新バージョンへ一括更新できるようになります。
$ ncu
$ ncu -u
$ npm install
これらのパッケージは、グローバルに追加しておくとよいです。
パッケージ設定したい(package.json)
{
"name": "my-project",
"version": "0.0.1",
"private": true,
"type": "module",
"engines": {
"node": ">=20"
},
"packageManager": "npm@11.19.0",
"dependencies": {},
"devDependencies": {}
}
package.jsonは、プロジェクトの設定と依存パッケージをまとめて管理するファイルです。
npm initを実行すると自動生成され、以降のnpm installはこのファイルを更新します。
nameとversionはプロジェクトの名前とバージョンです。
npmパッケージとして公開する予定がなければ、あまり気にしなくてよい項目です。
private: trueは、誤ってnpm publishで公開してしまわないようにするための安全装置です。
type: "module"は、.jsファイルをESModule(import/export)として扱う指定です。
省略した場合はCommonJS(require)として扱われます。
dependenciesにはnpm install(オプションなし)でインストールしたパッケージ、
devDependenciesにはnpm install --save-devでインストールしたパッケージが記録されます。
npm installだけを実行すると、これらの一覧をもとにnode_modulesが再現されます。
enginesは、動作確認済みのNode.jsバージョンを示すための項目です。
注意
enginesはデフォルトでは警告が出るだけで、インストール自体は止まりません。
バージョン違反時にnpm installを失敗させたい場合は、.npmrcにengine-strict=trueを追加する必要があります。
packageManagerは、npm(やyarn/pnpm)自体のバージョンを固定するための項目です。
corepack enableを実行しておくと、corepackがこのバージョンを見て自動的にダウンロード・切り替えしてくれます。
注釈
corepackはNode.js 20/22 LTSには同梱されていますが、
Node.js 25以降は同梱されなくなったため、npm install -g corepackで別途インストールが必要になる場合があります。
ヒント
package.jsonは手で編集してもよいですが、
npm install・npm uninstallのようなコマンド経由で更新していくほうが、
書き間違いも減り安全です。
スクリプト設定したい(package.json)
{
"name": "my-project",
"scripts": {
"build": "tsc",
"test": "vitest run",
"lint": "eslint .",
"start": "node index.js"
}
}
scriptsフィールドに、よく使うコマンドを短い名前で登録しておけます。
登録したスクリプトはnpm run <スクリプト名>で実行できます。
$ npm run build
$ npm run test
$ npm run lint
注釈
test、start、stop、restartの4つは特別扱いされていて、
npm runを省略してnpm test、npm startのように実行できます。
それ以外のスクリプト名はnpm runが必須です。
&&でつなげると、複数のスクリプトを順番に実行するスクリプトも作れます。
{
"scripts": {
"build": "tsc",
"test": "vitest run",
"ci": "npm run build && npm run test"
}
}
ヒント
同じコマンドを何度も打つより、目的ごとにscriptsへ登録しておくと、
チームメンバー間でも実行方法を揃えやすくなります。
プロジェクトによって内部の実装(tscかbabelか、jestかvitestか)が違っても、
npm run build・npm testという呼び出し方だけ覚えておけば済むようになります。