npm · npm
報錯原文
npm ERR! enoent ENOENT: no such file or directory, open '/home/me/package.json'
這是什麼意思
npm 在目前目錄以及往上一層層找 package.json,一個都沒找到——你在一個不是專案的地方執行了 npm 命令。這發生在你站在 monorepo 的根上而專案在子資料夾裡、你站在複製下來的資料夾旁邊、或者你乾脆忘了 cd 的時候。答案是切到有 package.json 的那個資料夾,用 ls 看一眼最快。只有當你真的想在這裡開一個新專案時才用 npm init -y:在錯的資料夾裡跑,會留下一個多餘的 package.json,日後把工具搞糊塗。
怎麼修
npm init -y- 來自
- npm
- npm
- 20
npm 的原因寫在第一行 code XXXX 裡,而不是最後那六行 npm ERR!;如果失敗來自相依樹或原生編譯而不是你自己的程式碼,刪掉 node_modules 重新安裝就能解決一半。
怎麼讀報錯
- 從第一行往下讀。越往下越是工具內部的事,起因通常寫在最上面。
- 有檔名和行號就從那裡查——不是堆疊最上面那一格,而是最上面那條提到你自己寫的檔案的行。
- 把報錯原文照樣去搜,但先去掉你自己的路徑和變數名,正是那些讓搜尋比對不上。
- 同一種情況在不同版本裡措辭不同。結果不對頭,就把版本號一起加進查詢。
- 貼上修法之前,先確認它會丟掉什麼。這裡面有些是不能收回的。
常見問題
Q. “npm ERR! enoent ENOENT: no such file or directory, open '/home/me/package.json'” 是什麼意思?
npm 在目前目錄以及往上一層層找 package.json,一個都沒找到——你在一個不是專案的地方執行了 npm 命令。這發生在你站在 monorepo 的根上而專案在子資料夾裡、你站在複製下來的資料夾旁邊、或者你乾脆忘了 cd 的時候。答案是切到有 package.json 的那個資料夾,用 ls 看一眼最快。只有當你真的想在這裡開一個新專案時才用 npm init -y:在錯的資料夾裡跑,會留下一個多餘的 package.json,日後把工具搞糊塗。
Q. 怎麼修?
npm init -y —— 執行前先看上面的說明,確認這條命令會丟掉什麼。
Q. 這是哪個工具報的?
npm。它屬於npm,報錯原文有 11 個詞。
相關報錯
npm ERR! The `npm ci` command can only install with an existing package-lock.json or npm-shrinkwrap.jsonnpmnpm ERR! Invalid Version:npmnpm ERR! code ELIFECYCLEnpmgyp ERR! build errornode-gypError: Cannot find module 'express'nodeModule not found: Error: Can't resolve './components/Button' in '/app/src'webpackError: error:0308010C:digital envelope routines::unsupportednode 17+FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memorynode