4

npm 3.x のインストールは、長いパスが原因で node.js をデプロイするときに、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 の名前が変更されないようにする方法はありますか?

4

2 に答える 2

0

あなたの情報によると、カスタム モジュールはフォルダーazure_utilをネストした npm <3.x バージョンでビルドされています。node_modules

node.js アプリケーションを Azure Web Apps にデプロイする前に、次の手順を試すことができます。

  1. ローカルの npm バージョンを 3.x バージョンにアップグレードします。
  2. アプリケーションディレクトリでコマンドnpm dedupeを実行すると、ツリーがフラットになります。説明はnpm change logにあります

これらの操作の後、アプリケーションの node.js deps はnode_modulesフォルダー内のフラット リストになります。そして、npmの名前変更を防ぐ必要があります。

それでもローカル環境で問題が発生する場合は、npm 3.x バージョンでカスタム依存関係を再構築して、ディレクトリ ツリーを事前にフラットにすることができます。

于 2016-02-16T01:55:42.340 に答える