很多同学在执行npm install,尤其是执行npm install --no-bin-links的时候,经常会遇到这么一个报错:

npm ERR! Linux 3.13.0-24-generic
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "--no-bin-links"
npm ERR! node v6.2.0
npm ERR! npm  v3.8.9

npm ERR! Maximum call stack size exceeded

这个原因往往是因为scripts中存在很多递归调用(循环调用),比如Module A依赖了module B,反过来Module B又依赖了Module A,或者一下子安装了太多的包,包与包之间的依赖关系复杂,而且呢这个问题一般只是发生在windows开发环境下,包括即使虚拟机是Linux系统,但Host主机是Windows,因为这种情况下你不得不使用--no-bin-links参数,禁用了链接,这给npm install带来很大困难。

好在这个问题的解决办法很简单,就是:

npm install --no-bin-links // 第一次让它失败,不管它
npm install --no-bin-links // 再执行一遍一般就好了,如果还没好,那你再多执行一遍

甚至很多老外在写一些自动化脚本时,遇到npm install环节,都会这么来写:

npm install --no-bin-links || npm install --no-bin-links

图省事你也可以直接这么用,当然还有更狠的,直接写循环判断,只要没成功,就重复执行,不过这里还是要相信我们的RP不会那么差吧~