私は奇妙な問題に遭遇しました-明らかにいくつかのNode.jsモジュールには深いフォルダー階層がありCopy-Item
、パスが250を超えるとWindowsのコピーコマンド(または実際に使用しているPowerShellのコマンド)が悪名高い「パスが長すぎる」エラーを発生させます長い文字。
たとえば、これは単一のNodeモジュールが作成できるフォルダー階層です。
node_modules\nodemailer\node_modules\simplesmtp\node_modules\
xoauth2\node_modules\request\node_modules\form-data\node_modules\
combined-stream\node_modules\delayed-stream\...
それは正気ではないようですが、Nodeモジュールでは現実です。
展開中にコピーと貼り付けを使用する必要があります(Gitの展開がオプションになるHerokuのような「巧妙な」ターゲットプラットフォームは使用していません)。これはWindowsでの深刻な制限です。
node_modules
フォルダーを圧縮する、または実行時に実際に必要なものだけを含めるnpmコマンドや何かはありませんか?(ノードモジュールには通常、test
展開する必要のないフォルダーなどが含まれています。)それを回避する方法に関する他のアイデアはありますか?Windowsを使用しないのは残念ながら選択肢ではありません:)
npm install
ターゲット環境での実行をサポートしていません。ローカルで「デプロイメントパッケージ」(基本的にはZIPとメタデータ)を作成し、ターゲットマシンにアップロードしてそこに抽出することで機能します。したがって、node_modules
直接含める必要があります。
package.json
withdependencies
セットがありますか?もしそうなら、あなたはせずにコピーできますnode_modules
へのNPMおよび使用install
またはupdate
依存関係?