windows下nodejs中node_modules嵌套,造成路径过长File Path is Too Long

一直都知道,windows下文件路径有260字符长度限制,可以通过调用Unicode版的Windows API函数来绕过限制。但是一直没有当回事,因为几乎没有遇到过类似问题。但自从接触前端,使用nodejs开发后,却总是遇到这个问题。
今天更是窝火,项目中的依赖性,嵌套了N层node_modules文件夹。真不知道npm的开发人员是怎么想的,难道他们之前从来没有在windows下开发过吗?即便不考虑windows下的路径长度限制,单单是这种无限层次的依赖嵌套,就多么浪费空间和性能。
好在开发人员现在也意识到了这个问题,在npm3中将尽可能把依赖性放置于一级node_modules中,尽可能避免嵌套过深。不过在官网下载的node 4.2.1仍然自带npm 2.14.7,需要我们自行升级为npm 3.3.10,升级方式参考下面的链接。

Flat, flat, flat!
https://github.com/npm/npm/releases/tag/v3.0.0

Upgrading on Windows
https://github.com/npm/npm/wiki/Troubleshooting#upgrading-on-windows

Path too long! 关于Windows 最多260字符文件路径限制
https://www.mgenware.com/blog/?p=2769

How to deploy Node.js application with deep node_modules structure on Windows?
http://stackoverflow.com/questions/13318364/how-to-deploy-node-js-application-with-deep-node-modules-structure-on-windows

Error: File Path is Too Long
http://stackoverflow.com/questions/12204186/error-file-path-is-too-long

Long Paths in .NET, Part 1 of 3 [Kim Hamilton]
http://blogs.msdn.com/b/bclteam/archive/2007/02/13/long-paths-in-net-part-1-of-3-kim-hamilton.aspx
Long Paths in .NET, Part 2 of 3: Long Path Workarounds [Kim Hamilton]
http://blogs.msdn.com/b/bclteam/archive/2007/03/26/long-paths-in-net-part-2-of-3-long-path-workarounds-kim-hamilton.aspx
Long Paths in .NET, Part 3 of 3 Redux [Kim Hamilton]
http://blogs.msdn.com/b/bclteam/archive/2008/07/07/long-paths-in-net-part-3-of-3-redux-kim-hamilton.aspx

Naming Files, Paths, and Namespaces
https://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx

Windows长路径文件删除工具
http://download.csdn.net/detail/netplaier/5073907

无法删除 NTFS 盘上的文件或文件夹
https://support.microsoft.com/zh-cn/kb/320081

发表评论

电子邮件地址不会被公开。 必填项已用*标注