Eu me deparei com um problema curioso - aparentemente, alguns módulos Node.js têm hierarquias de pasta tão profundas que o comando de cópia do Windows (ou do PowerShell, Copy-Item
que é o que estamos realmente usando) atinge o erro infame "caminho muito longo" quando o caminho está acima de 250 chars long.
Por exemplo, esta é uma hierarquia de pastas que um único módulo Node pode criar:
node_modules\nodemailer\node_modules\simplesmtp\node_modules\
xoauth2\node_modules\request\node_modules\form-data\node_modules\
combined-stream\node_modules\delayed-stream\...
Parece loucura, mas é uma realidade com os módulos do Node.
Precisamos usar copiar e colar durante a implantação (não estamos usando uma plataforma de destino "inteligente" como Heroku, onde a implantação do Git seria uma opção) e essa é uma limitação séria no Windows.
Não existe um comando npm ou algo que compactaria a node_modules
pasta ou talvez incluísse apenas o que é realmente necessário em tempo de execução? (Módulos de nó geralmente contêm test
pastas etc. que não precisamos implantar.) Alguma outra ideia de como contornar isso? Não usar o Windows, infelizmente, não é uma opção :)
npm install
no ambiente de destino, ele funciona criando um "pacote de implantação" localmente (basicamente um ZIP mais alguns metadados) que é então carregado para a máquina de destino, extraído lá e pronto. Portanto, preciso incluir node_modules
diretamente.
package.json
comdependencies
? Em caso afirmativo, você poderia copiar semnode_modules
e usar o npm parainstall
ouupdate
nas dependências?