Skip to content

npmコマンド完全ガイド

npmコマンドの使い方を、実務で使える実装例とベストプラクティスとともに詳しく解説します。

npm(Node Package Manager)は、Node.jsの標準パッケージマネージャーです。パッケージのインストール、管理、公開を行います。

npmの機能
├─ パッケージのインストール
├─ 依存関係の管理
├─ スクリプトの実行
└─ パッケージの公開
Terminal window
# パッケージのインストール(依存関係に追加)
npm install express
# 短縮形
npm i express
# 複数のパッケージを一度にインストール
npm install express cors dotenv
# 開発依存としてインストール
npm install --save-dev typescript
# 短縮形
npm install -D typescript
# グローバルインストール
npm install -g nodemon
# 短縮形
npm install -g nodemon
Terminal window
# 対話形式で作成
npm init
# デフォルト値で作成
npm init -y

パッケージのアンインストール

Section titled “パッケージのアンインストール”
Terminal window
# パッケージのアンインストール
npm uninstall express
# 短縮形
npm uninstall express
# 開発依存のアンインストール
npm uninstall -D typescript
Terminal window
# すべてのパッケージを更新
npm update
# 特定のパッケージを更新
npm update express
# パッケージの最新バージョンを確認
npm outdated
# パッケージを最新バージョンに更新
npm install express@latest

インストール済みパッケージの確認

Section titled “インストール済みパッケージの確認”
Terminal window
# インストール済みパッケージの一覧表示
npm list
# 短縮形
npm ls
# 依存関係のツリー表示
npm list --depth=0
# 特定のパッケージの確認
npm list express
# グローバルパッケージの確認
npm list -g --depth=0
Terminal window
# パッケージの詳細情報を表示
npm info express
# パッケージのバージョン情報
npm view express versions
# パッケージの最新バージョン
npm view express version
# パッケージのリポジトリ情報
npm info express repository
Terminal window
# セキュリティ脆弱性の確認
npm audit
# セキュリティ脆弱性の自動修正
npm audit fix
# 強制的に修正(破壊的変更を含む)
npm audit fix --force
# セキュリティ監査レポートの生成
npm audit --json > audit-report.json
Terminal window
# 依存関係の可視化
npm ls --all
# 依存関係の重複確認
npm dedupe
# 未使用パッケージの確認(depcheckを使用)
npx depcheck
{
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js",
"test": "jest",
"build": "tsc",
"lint": "eslint ."
}
}
Terminal window
# スクリプトの実行
npm run start
# 短縮形(start、test、stop、restartのみ)
npm start
# 引数を渡す
npm run test -- --coverage
# 環境変数を設定
NODE_ENV=production npm run start
Terminal window
# キャッシュの場所を確認
npm config get cache
# キャッシュのサイズを確認
npm cache verify
Terminal window
# キャッシュのクリア
npm cache clean --force
# キャッシュの検証
npm cache verify
Terminal window
# すべての設定を表示
npm config list
# 特定の設定を確認
npm config get registry
# 設定ファイルの場所を確認
npm config get userconfig
Terminal window
# レジストリの変更
npm config set registry https://registry.npmjs.org/
# プロキシの設定
npm config set proxy http://proxy.example.com:8080
# タイムアウトの設定
npm config set fetch-timeout 300000
.npmrc
# プロジェクト固有の設定
registry=https://registry.npmjs.org/
save-exact=true
package-lock=true

7. 実務でのベストプラクティス

Section titled “7. 実務でのベストプラクティス”
{
"name": "my-app",
"version": "1.0.0",
"description": "My application",
"main": "index.js",
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js",
"test": "jest",
"build": "tsc",
"lint": "eslint .",
"format": "prettier --write ."
},
"dependencies": {
"express": "^4.18.2"
},
"devDependencies": {
"typescript": "^5.0.0",
"nodemon": "^2.0.0"
},
"engines": {
"node": ">=18.0.0",
"npm": ">=9.0.0"
},
"keywords": ["nodejs", "express"],
"author": "Your Name",
"license": "MIT"
}

パターン2: セキュリティの強化

Section titled “パターン2: セキュリティの強化”
Terminal window
# package-lock.jsonの使用を強制
npm config set package-lock true
# セキュリティ監査の自動実行
npm audit
# 脆弱性のあるパッケージの確認
npm audit --audit-level=moderate
Terminal window
# 依存関係の更新確認
npm outdated
# メジャーバージョンの更新確認
npm outdated --long
# セマンティックバージョンの確認
npm view express version

原因:

  • ネットワークの問題
  • キャッシュの問題
  • 権限の問題

解決策:

Terminal window
# キャッシュのクリア
npm cache clean --force
# 再インストール
rm -rf node_modules package-lock.json
npm install
# 権限の問題の場合
sudo npm install # 非推奨
# または
npm install --prefix ~/.npm-global

原因:

  • package-lock.jsonが更新されていない
  • 異なるバージョンのnpmを使用

解決策:

Terminal window
# package-lock.jsonの再生成
rm package-lock.json
npm install
# npmのバージョン確認
npm --version
# npmの更新
npm install -g npm@latest

原因:

  • 古いバージョンのパッケージ
  • 脆弱性のある依存関係

解決策:

Terminal window
# セキュリティ監査
npm audit
# 自動修正
npm audit fix
# 手動で更新
npm update express
npm install express@latest

これで、npmコマンドの基礎知識と実務での使い方を理解できるようになりました。