一尘不染

如何在Windows上部署具有深层node_modules结构的Node.js应用程序?

node.js

我遇到了一个奇怪的问题-显然,某些Node.js模块的 文件夹层次结构 如此之 ,以至于Windows复制命令(或Copy- Item我们实际使用的PowerShell 就是PowerShell的)在路径超过250时遇到了臭名昭著的“路径过长”错误字符长。

例如,这是一个单个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模块却是现实。

我们需要在部署期间使用复制粘贴(我们没有使用像Heroku这样的“聪明”目标平台,可以选择进行Git部署),这在Windows上是一个严重的限制。

是否没有npm命令或可以压缩node_modules文件夹或仅包含运行时实际需要的内容的命令?(节点模块通常包含test文件夹等,我们不需要部署。)还有其他解决方法吗?不幸的是,不使用Windows不是一种选择:)


阅读 243

收藏
2020-07-07

共1个答案

一尘不染

npm
v3(最近发布)通过拉平依赖性来解决此问题。.在以下部分的https://github.com/npm/npm/releases/tag/v3.0.0中查看发行说明flat flat

还有关于这个问题的最后评论https://github.com/npm/npm/issues/3697

2020-07-07