首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Windows Node.js 創建 Kraken 項目報錯:路徑過長導致 node-gyp 編譯失敗

     編輯:程式設計綜合問答

錯誤關鍵信息

error MSB3191: 無法創建目錄「Release\obj\thread_sleep\thread_sleep.tlog\」。指定的路徑或文件名太長,完全限定文件名必須少於 260 個字符。

依賴鏈極深:generator-kraken → yeoman-generator → cross-spawn → spawn-sync → try-thread-sleep → thread-sleep,導致 node_modules 嵌套路徑超過 Windows 260 字符限制。

解決方案

  1. 將項目移至短路徑(推薦):如 D:\proj\kraken-app,避免用戶目錄 C:\Users\longname\AppData\Roaming\npm\node_modules\...。
  2. 啟用 Windows 長路徑支持(Win10 1607+):
    # 以管理員運行 PowerShell
    Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem' -Name 'LongPathsEnabled' -Value 1 -Type DWord
       
    重啟後 Node.js 8.0+ 可自動利用長路徑 API。
  3. 使用 npm 3 扁平化依賴:npm install --global --production 或升級 npm 3+ 減少嵌套。
  4. 刪除 node_modules 重裝:有時殘留文件導致路徑異常。

經驗總結

  • Windows 開發 Node.js 原生模塊項目,務必將項目放在淺層目錄(如磁盤根目錄)。
  • 避免在 AppData、OneDrive 同步目錄下開發,路徑極長且可能觸發文件鎖定。
  • 長期建議:使用 WSL2 (Windows Subsystem for Linux) 獲得原生 Linux 文件系統體驗,無路徑長度限制。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved