相关疑难解决方法(0)

节点npm windows文件路径太长,无法安装软件包

情况

我想在Windows托管的开发环境中使用gulp和相关的前端工具链.我正试图使用​​像Browser-Sync这样的gulp插件,因为node_modules文件夹图表会让Windows文件路径过长而无法复制文件.我想在Windows上处理这个问题的实用方法,无论Node社区可能提供或不提供什么来改善Windows上的npm可用性.

2个问题

  1. Windows的npm工作流程是否按照预期的方式工作?"运行命令和文件安装"(例如,与OSX上的npm相比,Linux上的npm,ruby gems甚至是nuget)我不想在每次使用时都乱用一堆手动文件编辑,符号链接等在Windows上的npm.

  2. 是否有一个记录良好,稳定的Cygwin工作流,用于npm和节点执行,以解决Windows API文件路径限制?

下面列出的血腥细节......

一般问题

  • 从标准Windows命令提示符运行npm install会在深层嵌套的node_modules层次结构上失败.
  • Per Joyent的github repo线程,这是一个公认的问题,对于以Windows为中心的环境中的开发人员来说没有可行的解决方法.(真的吗?)
  • NT内核支持最多32,767个字符的文件路径长度.
  • Windows API的MAXPATH限制为260个字符.
  • Windows API处理所有主要Windows shell的文件操作,包括:Explorer,CMD,Powershell,MYSgit bash等等.(MS真的吗?NTFS有多久了?)
  • Cygwin支持长文件路径,但由于crlf格式化,npm.cmd无法开箱即用.我在npm上尝试了DOS2Unix转换以使其与Cygwin一起工作,但似乎还存在其他问题.

我目前的黑客

  • 在C:\的根目录上创建一个"n"文件夹作为临时区域,因为这会缩短我的文件夹路径.
  • 在"n"文件夹中运行npm以安装我需要的模块.
  • 启动Cygwin并使用cp将node_modules文件夹复制到目标项目中.
  • 当依赖关系改变或需要启动新项目时,冲洗并重复.

其他难吃的解决方法

符号链接可用于缩短文件路径,但这些是kludgy hacks.随着npm生态系统的增长,嵌套的依赖链将变得太长,这种解决方法变得无法使用.

在我遇到的一个线程中提到了将所有依赖项添加到根文件夹的package.json文件中.虽然这种方法会使文件夹结构变平并防止加载重复模块,但这种解决方法感觉不自然.它还会破坏npm的可用性,持久性和生产力,因为你必须手动或使用一些hacky脚本来安装文件和文件夹.这种方法也容易受到符号链接方法可能最终遭受的同样命运的影响.

windows filepath node.js npm

87
推荐指数
3
解决办法
4万
查看次数

Node.js - 超出最大调用堆栈大小

当我运行我的代码时,Node.js抛出"RangeError: Maximum call stack size exceeded"了太多递归调用引起的异常.我试图增加Node.js堆栈大小sudo node --stack-size=16000 app,但Node.js崩溃没有任何错误消息.当我在没有sudo的情况下再次运行时,Node.js打印出来'Segmentation fault: 11'.有没有可能在不删除递归调用的情况下解决这个问题?

谢谢

stack-overflow recursion callstack node.js

68
推荐指数
4
解决办法
11万
查看次数

标签 统计

node.js ×2

callstack ×1

filepath ×1

npm ×1

recursion ×1

stack-overflow ×1

windows ×1