node.js - npm install教學




在Windows/Azure中重命名長路徑時,npm 3.x安裝失敗 (2)

由於長路徑,在部署node.js時,npm 3.x安裝在重命名Windows / Azure中的長路徑時失敗:

npm ERR! EINVAL: invalid argument, rename 'D:\home\site\wwwroot\node_modules\azure_util\node_modules\pkgcloud\node_modules\gcloud\node_modules\gapitoken\node_modules\jws\node_modules\base64url\node_modules\meow\node_modules\indent-string\node_modules\repeating\node_modules\is-finite\node_modules\number-is-nan' -> 'D:\home\site\wwwroot\node_modules\number-is-nan'

有沒有克服它,或防止重命名npm?


根據你的信息,你的自定義模塊azure_util是以npm <3.x版本構建的,它嵌套了node_modules文件夾。

在將node.js應用程序部署到Azure Web應用程序之前,您可以嘗試以下步驟:

  1. 升級您的本地npm版本到3.x版本。
  2. 在您的應用程序目錄中運行命令npm dedupe ,這將使樹變平。 您可以在npm更改日誌中找到說明

完成這些操作後,應用程序的node.js deps應該在node_modules文件夾中進行平面列表。 它應該防止npm重命名。

如果你的本地環境仍然出現這個問題,你可以嘗試在npm 3.x版本中重建你的自定義依賴關係,以使目錄樹預先保持平坦。


我們找到了解決方案。 看起來像npm 3.x是越來越到這種情況下,當它需要重新命名長路徑只有當你從舊npm升級。

這意味著,因為我們已經有了這個部署運行一個較舊的npm,當我們升級到npm 3.6.0時,它試圖扁平化現有的部署和崩潰。

解決方案只是刪除node_modules並重新部署。





npm-install