Linux環境でNode.jsを利用した開発は、Webアプリケーション、CLIツール、ビルドツールなど幅広い用途で不可欠になっています。一方で、インストール方法の選択やnpmの権限問題、バージョン管理を誤ると、後々トラブルの原因になりがちです。
本記事では、Linux上でNode.js / npmを安全かつ効率的に利用するための設定方法と、実務で推奨されるベストプラクティスを体系的に解説します。
Node.jsとnpmの基礎知識
- Node.js
JavaScriptをサーバーサイドで実行するためのランタイム - npm (Node Package Manager)
Node.jsの公式パッケージ管理ツール - npx
npmに付属する、一時的にパッケージを実行するためのコマンド
Node.jsをインストールすると、通常は npm と npx も同時に利用可能になります。
LinuxでのNode.jsインストール方法の選択
1. ディストリビューション標準リポジトリ(非推奨)
sudo apt install nodejs npm
- メリット:簡単
- デメリット:Node.jsのバージョンが古いことが多い
検証用途以外では推奨されません。
2. NodeSourceリポジトリ(シンプル)
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
- メリット:比較的新しいLTSが使える
- デメリット:複数バージョン管理ができない
3. nvm(Node Version Manager)【推奨】
実務・個人開発ともに最もおすすめされる方法です。
nvmのインストール
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
設定反映:
source ~/.bashrc
Node.jsのインストール
nvm install --lts
nvm use --lts
バージョン確認
node -v
npm -v
nvmのメリット
- Node.jsの複数バージョンを共存可能
- プロジェクトごとにNode.jsバージョンを切り替えられる
- sudo不要でnpmを利用できる
npmの基本設定と注意点
sudoでnpmを使わない
以下はやってはいけない例です。
sudo npm install -g package-name
理由
- ファイル権限の破壊
- セキュリティリスク
- 後からnpmが壊れる原因になる
👉 nvmを使えばsudoは不要です。
npmのグローバルパッケージの扱い
npm install -g npm-check-updates
代表的なグローバルツール
- eslint
- typescript
- vite
- npm-check-updates
プロジェクト単位でのベストプラクティス
package.jsonを必ず管理する
npm init -y
- 依存関係
- 実行スクリプト
- Node.jsの前提条件
を明示的に管理します。
node_modulesをGit管理しない
.gitignore に必ず追加
node_modules/
依存関係は以下で復元します。
npm install
package-lock.jsonをコミットする
- 依存関係の完全固定
- 環境差異の防止
- CI/CDでの再現性向上
👉 削除・無視しない
npm scriptsを活用する
{
"scripts": {
"dev": "vite",
"build": "vite build",
"lint": "eslint ."
}
}
実行
npm run dev
Node.jsバージョン固定のベストプラクティス
.nvmrcを使う
20
使用時
nvm use
- チーム開発
- CI環境
- 将来的な保守
で非常に重要です。
セキュリティとメンテナンス
脆弱性チェック
npm audit
npm audit fix
依存関係の更新確認
npm outdated
よくあるトラブルと対処法
node / npm が見つからない
command not found: node
対処
source ~/.bashrc
nvm use --lts
権限エラー(EACCES)
原因
- sudo npm の使用履歴
対処
- nvmを使ったクリーンなNode.js環境に切り替える
まとめ
LinuxでNode.js / npmを安全かつ快適に使うための要点は以下の通りです。
- Node.jsは nvmで管理する
- npmに sudoは使わない
- プロジェクト単位で依存関係を管理する
- Node.jsバージョンを明示的に固定する
- セキュリティチェックを定期的に行う
これらを守ることで、開発効率と保守性を大きく向上させることができます。
