我遇到了一个奇怪的问题——显然是某个 node .js模块有deep folder hierarchies个,当路径长度超过250个字符时,Windows copy命令(或我们实际使用的PowerShell的Copy-Item)会出现臭名昭著的"路径过长"错误.

例如,这是单个 node 模块可以创建的文件夹层次 struct :

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是一个严重的限制.

Isn't there a npm command or something that would compact the 100 folder or maybe include only what's actually necessary at runtime?( node 模块通常包含test个文件夹等,我们不需要部署.)还有其他解决方法吗?不幸的是,不使用Windows不是一个选项:)

推荐答案

npm v3(最近发布)通过平展依赖关系解决了这个问题..请查看flat flathttps://github.com/npm/npm/releases/tag/v3.0.0节中的发行说明.

关于这个问题的最后 comments 是https://github.com/npm/npm/issues/3697

Node.js相关问答推荐

如何使用jq将依赖项添加到package.json中

NX无法使用缓存运行根级脚本

如何使用Node.js、Express和Mongoose创建多个API

当FastifyJS向客户端发送响应时,apache 不会将其发送给他

Puppeteer 在本地运行良好,但在 Heroku 中运行不佳

Next.js 路由不起作用 - 页面未正确加载

如何使用Next.js/Node/TS正确地上传至S3

Postgressql的BIGSERIAL自增序列,即使由于唯一约束错误没有创建行,也会自动增加

express app.post的多个参数在Node.js中的定义是什么

将文件传递到 AWS lambdas(nodejs) + API 网关后重新上传文件

Mocha调用所有it回调模拟(测试中间件)

如何从名字,中间名,姓氏中获取全名并在结果中搜索匹配?

多个 Axios 请求合并

如何更新 MongoDB 中对象数组中的键?

AWS EC2 npm install 突然很慢

制作一个接受命令行参数的脚本

使用 NodeJS 将新对象附加到 DynamoDB 中的 JSON 数组

npm package.json 操作系统特定脚本

在 Node 中连接和缩小 JS 文件

我可以让 node --inspect 自动打开 Chrome