DevToolBox

npm error code ENOENT の原因と対処

最終更新日: 2026-09-01公開日: 2026-09-01執筆: DevToolBox編集部

npm error code ENOENT の核心は、npmが使おうとしたパスにファイルまたはディレクトリが存在しないことです。ENOENTは 慣用的に "Error NO ENTry" と読まれるOS由来のエラーコードで、Node.jsではNo such file or directory と説明されます。まずエラー内のsyscallpathを読み、何が無いのかを特定します。

ENOENT means that no file or directory exists at the requested path. Read the reported path and syscall before reinstalling anything; they identify what npm or Node.js tried to access.

TL;DR

1. エラーの読み方 / Read the missing path

npm error code ENOENT
npm error syscall open
npm error path C:/work/my-app/package.json
npm error errno -4058
npm error enoent Could not read package.json: Error: ENOENT: no such file or directory, open 'C:/work/my-app/package.json'
npm error enoent This is related to npm not being able to find a file.

npm 11.11.0を使い、空のディレクトリでnpm installを実行して上記と同じ構造の 文言を確認しました。表示上のパスは短縮しています。重要なのはopenしようとしたpackage.jsonが無いという点で、キャッシュ削除では解決しません。

2. 原因別の切り分け / Diagnose by cause

(a) package.jsonが無いディレクトリでnpm installを実行した

代表的な文言は次の通りです。

npm error code ENOENT
npm error syscall open
npm error enoent Could not read package.json: Error: ENOENT: no such file or directory, open 'C:/work/my-app/package.json'

pwdまたはcdで現在地を確認し、package.jsonがある プロジェクトルートへ移動してから実行します。新規プロジェクトの場合だけ、作成先を確認してnpm initを使います。既存プロジェクトで不用意に初期化すると別のpackage.jsonを作るため避けてください。

cd C:/work/my-app
npm install

(b) package.jsonのmainまたはscriptsが存在しないファイルを指している

scriptsから起動した処理が設定ファイル等を開く場合、次のようなENOENTになります。

Error: ENOENT: no such file or directory, open 'C:/work/my-app/config/local.json'
  errno: -4058,
  code: 'ENOENT',
  syscall: 'open',
  path: 'C:/work/my-app/config/local.json'

package.jsonmainscriptsを確認し、ファイル名の大小文字、 ビルド前後の出力先、相対パスの基準を実ファイルと合わせます。npm scriptsはパッケージのルートを 作業ディレクトリとして実行されます。mainはパッケージを読み込む側に示す入口で、npm startが自動で実行する項目ではありません。なお、"start": "node missing-entry.js"のように Node.jsの起動ファイル自体が無いケースを実測すると、Node.js 24.14.1ではMODULE_NOT_FOUNDでした。すべてのファイル欠落がENOENTになるわけではありません。

(c) キャッシュ破損またはnode_modulesの不整合

エラーのpathnode_modules配下で、インストール中断後などに実ファイルが 欠けている場合は依存関係を再構築します。次はロックファイルも作り直す手順なので、Gitの差分を 確認できる状態で実行してください。

rm -rf node_modules package-lock.json
npm install
npm cache verify

Windows PowerShellでは次のように実行できます。

Remove-Item -Recurse -Force node_modules
Remove-Item -Force package-lock.json
npm install
npm cache verify

npmのキャッシュは内容を整合性検証する設計で、npm cache verifyは不要データの回収と インデックス・保存データの検証を行います。npm cache clean --forceの常用は不要です。pathがプロジェクト直下を指す場合は、この再構築をしても原因は直りません。

(d) Windows特有のパス・OneDriveの問題

Error: ENOENT: no such file or directory, lstat 'C:/Users/user/OneDrive/project/node_modules/example/file.js'

(e) モノレポまたはworkspacesのパスが誤っている

npm error code ENOENT
npm error syscall open
npm error path C:/work/monorepo/packages/api/package.json
npm error enoent Could not read package.json

ルートpackage.jsonworkspacesに書いたパスと、実際のディレクトリ構成を 照合します。workspace名とフォルダ名が同じとは限らないため、対象を名前で指定する場合は各package.jsonnameも確認します。

npm install
npm run build --workspace=api

ルートから実行するのか、対象workspace内で実行するのかを統一してください。存在しないpackages/apiをworkspacesに残している場合は設定を直し、移動したパッケージへのfile:依存も新しい相対パスへ更新します。

3. npmのENOENTとNode.jsのENOENTの違い

表示発生元最初に見る場所
npm error code ENOENTnpm CLIが必要なファイルを開けず、OSエラーを報告npm出力のpathと現在地
Error: ENOENT, no such file or directory自分のNode.jsコードが呼んだfs系API等スタックトレースとコード内のパス指定

後者ではnpmの再インストールより先に、自分のコードがfs.readFilefs.openfs.stat等へ渡したパスを確認します。相対パスならprocess.cwd()から解決されるのか、モジュールファイルの位置から組み立てるのかを 明示すると再発を防げます。

4. 最短の確認順 / Diagnostic order

  1. エラーのsyscallpathを読む
  2. そのパスが実際に存在するか確認する
  3. package.jsonscripts、workspacesの設定と実ディレクトリを照合する
  4. node_modules配下の欠落だけなら依存関係を再構築する
  5. Windowsでは短いローカルパスへ移して環境依存かを切り分ける

依存パッケージのファイル欠落ではなく、バージョン競合でERESOLVE unable to resolve dependency treeが出ている場合は別問題です。npm ERESOLVEエラーの原因と解決を参照してください。

5. English summary

ENOENT is an operating-system error meaning that no file or directory exists at the requested path. For npm error code ENOENT, inspect npm's reportedpath and syscall: common causes are running npm outside the project root, a bad script or workspace path, an incomplete node_modules tree, or a Windows path or OneDrive availability issue. A direct Node.jsError: ENOENT, no such file or directory usually comes from an fsoperation in your code, so inspect the stack trace and the path your code supplied.

よくある質問 / FAQ

npm error code ENOENT とはどういう意味?
ENOENTは、指定したパスにファイルまたはディレクトリが存在しないことを示すOS由来のエラーコードです。npmの不具合と決めつけず、エラーに表示されたpathとsyscallを最初に確認します。
Could not read package.json と表示されたらどう直す?
pwdまたはcdで現在地を確認し、package.jsonがあるプロジェクトルートへ移動してからnpm installを実行します。新規プロジェクトなら、意図を確認したうえでnpm initを実行します。
node_modulesとpackage-lock.jsonを削除すれば必ず直る?
直るのは依存関係の展開が途中で欠けた場合などに限られます。package.json自体の欠落、scriptsのパス誤り、workspace設定の誤りは削除しても直りません。まずエラーのpathを確認してください。
Windowsの日本語や空白を含むパスはENOENTの原因になる?
日本語や空白を含むパス自体はWindowsで有効です。ただしnpm scriptや外部ツールがパスを正しく引用していないと別のパスとして解釈され、ENOENTになることがあります。短い英数字だけの場所へ移して再現差を確認します。
How do I fix npm error code ENOENT?
Read the path and syscall in the error first. Confirm that the path exists, run npm from the directory containing package.json, check script and workspace paths, and only rebuild node_modules when the missing path is inside the installed dependency tree.

関連ツール / Related tools

関連ガイド / Related guides