パッケージ管理したい(npm)
$ npm list
$ npm install
$ npm uninstall
$ npm test
$ npm run
npmは、Node.jsのパッケージ管理ツールです。
プロジェクトのpackage.jsonをもとに、依存パッケージのインストールや削除、スクリプトの実行などを行えます。
インストールしたい(node)
$ brew install node
$ node --version
v26.7.0
$ npm --version
11.19.0
$ npx --version
11.19.0
npmはHomebrewでインストールできます。
フォーミュラ名はnodeです。
nodeをインストールすると、npmとnpxも同時にインストールされます。
注釈
npxコマンドを使うにはネットワーク環境が必要です。
グローバル設定したい
$ npm install -g all-the-package-names
$ npm install -g npm-check-updates
$ npm install -g @google/clasp
-gオプションでグローバルにインストールしたパッケージは、プロジェクトを問わずコマンドとして使えるようになります。
CLIツールなど、複数のプロジェクトで共通して使いたいパッケージは、はじめにグローバルへ入れておくと便利です。
$ npm -g list --depth=0
-gオプションとlistコマンドを組み合わせると、グローバルにインストール済みのパッケージを確認できます。
all-the-package-namesを追加すると、
npm install時にパッケージ名を補完してくれるようになります。
npm-check-updatesを追加すると、
npm outdatedよりも簡単に、package.jsonごと最新バージョンへ一括更新できるようになります。
$ ncu
$ ncu -u
$ npm install
claspは、Google Apps Scriptのプロジェクトをローカルで開発するためのCLIツールです。
パッケージ名は@google/claspです。
パッケージ設定したい(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)として扱われます。
注釈
比較的新しいNode.jsでは、typeを省略していても.jsファイルの中身がimport/export構文であれば、
警告を出しつつ自動的にESModuleとして解釈し直してくれる場合があります(require構文のファイルはそのままCommonJSとして動きます)。
ただし、この自動判定には実行時のオーバーヘッドがあるため、警告にしたがってtype: "module"を明示しておくのが安全です。
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という呼び出し方だけ覚えておけば済むようになります。
パッケージを探したい(npm search)
$ npm search キーワード
searchコマンドで、npmレジストリからパッケージ名や説明にキーワードを含むパッケージを検索できます。
パッケージの詳細を調べたい(npm view)
$ npm view パッケージ名
$ npm info パッケージ名
npm view(npm infoはそのエイリアス)で、パッケージのバージョンや依存関係、リポジトリのURLなどの詳細情報を確認できます。
インストール前にパッケージの中身を確認しておきたいときに使います。
注意
npmエコシステムでは、既存の人気パッケージの認証情報が乗っ取られたり、 タイポスクワッティング(似た名前の偽パッケージを紛れ込ませる手口)によって、 悪意のあるコードが配布されるサプライチェーン攻撃がたびたび発生しています。
見覚えのないパッケージや依存関係で入ってくるマイナーなパッケージを導入する前に、
npm view パッケージ名 maintainers time.createdなどでメンテナーや公開時期を確認するとよいです。
リポジトリのURLを開いて、実際のソースやスター数・Issueの様子を見ておくのも有効です。
npm auditで、既知の脆弱性が報告されているかも合わせて確認できます。
パッケージを追加したい(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 typescript
$ npm install --save-dev rollup
$ npm install --save-dev vitest
$ npm install --save-dev @biomejs/biome
--save-dev(-D)で、開発用の依存パッケージとしてインストールできます。
パッケージ名はpackage.jsonのdevDependenciesに記録されます。
テストツールやビルドツールなど、開発時にだけ必要でプロジェクトの実行には不要なパッケージに使います。
$ npx tsc --version
$ npx rollup --version
$ npx vitest --version
$ npx biome --version
上記はGoogle Apps Scriptの開発で実際に使っているパッケージをサンプルにしました。
ローカルにインストールしたパッケージはnpx経由で実行できます。
パッケージを削除したい(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が許容する最新バージョン・実際の最新バージョンが一覧表示されます。