npmコマンド完全ガイド
npmコマンド完全ガイド
Section titled “npmコマンド完全ガイド”npmコマンドの使い方を、実務で使える実装例とベストプラクティスとともに詳しく解説します。
1. npmとは
Section titled “1. npmとは”npmの役割
Section titled “npmの役割”npm(Node Package Manager)は、Node.jsの標準パッケージマネージャーです。パッケージのインストール、管理、公開を行います。
npmの機能 ├─ パッケージのインストール ├─ 依存関係の管理 ├─ スクリプトの実行 └─ パッケージの公開2. 基本的なnpmコマンド
Section titled “2. 基本的なnpmコマンド”パッケージのインストール
Section titled “パッケージのインストール”# パッケージのインストール(依存関係に追加)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 nodemonpackage.jsonの作成
Section titled “package.jsonの作成”# 対話形式で作成npm init
# デフォルト値で作成npm init -yパッケージのアンインストール
Section titled “パッケージのアンインストール”# パッケージのアンインストールnpm uninstall express
# 短縮形npm uninstall express
# 開発依存のアンインストールnpm uninstall -D typescriptパッケージの更新
Section titled “パッケージの更新”# すべてのパッケージを更新npm update
# 特定のパッケージを更新npm update express
# パッケージの最新バージョンを確認npm outdated
# パッケージを最新バージョンに更新npm install express@latest3. パッケージの精査
Section titled “3. パッケージの精査”インストール済みパッケージの確認
Section titled “インストール済みパッケージの確認”# インストール済みパッケージの一覧表示npm list
# 短縮形npm ls
# 依存関係のツリー表示npm list --depth=0
# 特定のパッケージの確認npm list express
# グローバルパッケージの確認npm list -g --depth=0パッケージ情報の確認
Section titled “パッケージ情報の確認”# パッケージの詳細情報を表示npm info express
# パッケージのバージョン情報npm view express versions
# パッケージの最新バージョンnpm view express version
# パッケージのリポジトリ情報npm info express repositoryセキュリティ監査
Section titled “セキュリティ監査”# セキュリティ脆弱性の確認npm audit
# セキュリティ脆弱性の自動修正npm audit fix
# 強制的に修正(破壊的変更を含む)npm audit fix --force
# セキュリティ監査レポートの生成npm audit --json > audit-report.json依存関係の分析
Section titled “依存関係の分析”# 依存関係の可視化npm ls --all
# 依存関係の重複確認npm dedupe
# 未使用パッケージの確認(depcheckを使用)npx depcheck4. スクリプトの実行
Section titled “4. スクリプトの実行”package.jsonのスクリプト
Section titled “package.jsonのスクリプト”{ "scripts": { "start": "node index.js", "dev": "nodemon index.js", "test": "jest", "build": "tsc", "lint": "eslint ." }}スクリプトの実行
Section titled “スクリプトの実行”# スクリプトの実行npm run start
# 短縮形(start、test、stop、restartのみ)npm start
# 引数を渡すnpm run test -- --coverage
# 環境変数を設定NODE_ENV=production npm run start5. キャッシュの管理
Section titled “5. キャッシュの管理”キャッシュの確認
Section titled “キャッシュの確認”# キャッシュの場所を確認npm config get cache
# キャッシュのサイズを確認npm cache verifyキャッシュのクリア
Section titled “キャッシュのクリア”# キャッシュのクリアnpm cache clean --force
# キャッシュの検証npm cache verify6. 設定の管理
Section titled “6. 設定の管理”# すべての設定を表示npm config list
# 特定の設定を確認npm config get registry
# 設定ファイルの場所を確認npm config get userconfig# レジストリの変更npm config set registry https://registry.npmjs.org/
# プロキシの設定npm config set proxy http://proxy.example.com:8080
# タイムアウトの設定npm config set fetch-timeout 300000.npmrcファイル
Section titled “.npmrcファイル”# プロジェクト固有の設定registry=https://registry.npmjs.org/save-exact=truepackage-lock=true7. 実務でのベストプラクティス
Section titled “7. 実務でのベストプラクティス”パターン1: package.jsonの最適化
Section titled “パターン1: package.jsonの最適化”{ "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: セキュリティの強化”# package-lock.jsonの使用を強制npm config set package-lock true
# セキュリティ監査の自動実行npm audit
# 脆弱性のあるパッケージの確認npm audit --audit-level=moderateパターン3: 依存関係の管理
Section titled “パターン3: 依存関係の管理”# 依存関係の更新確認npm outdated
# メジャーバージョンの更新確認npm outdated --long
# セマンティックバージョンの確認npm view express version8. よくある問題と解決策
Section titled “8. よくある問題と解決策”問題1: インストールエラー
Section titled “問題1: インストールエラー”原因:
- ネットワークの問題
- キャッシュの問題
- 権限の問題
解決策:
# キャッシュのクリアnpm cache clean --force
# 再インストールrm -rf node_modules package-lock.jsonnpm install
# 権限の問題の場合sudo npm install # 非推奨# またはnpm install --prefix ~/.npm-global問題2: バージョンの不一致
Section titled “問題2: バージョンの不一致”原因:
- package-lock.jsonが更新されていない
- 異なるバージョンのnpmを使用
解決策:
# package-lock.jsonの再生成rm package-lock.jsonnpm install
# npmのバージョン確認npm --version
# npmの更新npm install -g npm@latest問題3: セキュリティ脆弱性
Section titled “問題3: セキュリティ脆弱性”原因:
- 古いバージョンのパッケージ
- 脆弱性のある依存関係
解決策:
# セキュリティ監査npm audit
# 自動修正npm audit fix
# 手動で更新npm update expressnpm install express@latestこれで、npmコマンドの基礎知識と実務での使い方を理解できるようになりました。