簡體   English   中英

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

[英]npm 3.x install fails on rename long paths in Windows/Azure

由於長路徑,部署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重命名?

我們找到了解決方案。 看起來像npm 3.x在只需從舊的npm升級時需要重命名長路徑時才會遇到這種情況。

這意味着,因為我們已經使用較舊的npm運行此部署,當我們升級到npm 3.6.0時,它試圖壓扁現有部署並崩潰。

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

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

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

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

執行這些操作后,應用程序的node.js deps應該在node_modules文件夾中列表。 它應該阻止npm重命名。

如果您仍然在本地環境中出現問題,則可以嘗試在npm 3.x版本中重建自定義依賴項,以使目錄樹提前保持平整。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM