我试图运行npm install,这是控制台的输出:

npm ERR! Linux 4.8.0-27-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install"
npm ERR! node v6.9.1
npm ERR! npm  v3.10.8

npm ERR! Maximum call stack size exceeded
npm ERR! 
npm ERR! If you need help, you may report this error at:
npm ERR!     <https://github.com/npm/npm/issues>

这是npm-debug.log的内容:

113791 verbose stack RangeError: Maximum call stack size exceeded
113791 verbose stack     at Object.color (/usr/lib/node_modules/npm/node_modules/npmlog/node_modules/console-control-strings/index.js:115:32)
113791 verbose stack     at EventEmitter.log._format (/usr/lib/node_modules/npm/node_modules/npmlog/log.js:252:51)
113791 verbose stack     at EventEmitter.<anonymous> (/usr/lib/node_modules/npm/node_modules/npmlog/log.js:138:24)
113791 verbose stack     at emitThree (events.js:116:13)
113791 verbose stack     at emit (events.js:194:7)
113791 verbose stack     at .<anonymous> (/usr/lib/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-group.js:23:18)
113791 verbose stack     at emitThree (events.js:116:13)
113791 verbose stack     at emit (events.js:194:7)
113791 verbose stack     at .<anonymous> (/usr/lib/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-group.js:23:18)
113791 verbose stack     at emitThree (events.js:116:13)
113791 verbose stack     at emit (events.js:194:7)
113792 verbose cwd /home/giorgi/AdMove/dev/web-advertiser-admove
113793 error Linux 4.8.0-27-generic
113794 error argv "/usr/bin/nodejs" "/usr/bin/npm" "install"
113795 error node v6.9.1
113796 error npm  v3.10.8
113797 error Maximum call stack size exceeded
113798 error If you need help, you may report this error at:
113798 error     <https://github.com/npm/npm/issues>
113799 verbose exit [ 1, true ]

多次删除node_modules,并尝试重新安装。不能理解是什么原因导致了这个,以及如何解决它。


当前回答

如果你的默认npm注册表不是公共npm存储库(你可以通过你的.npmrc文件或通过npm CLI命令检查你的npm配置来检查),你可以尝试取消注册表配置,让它指向公共npm存储库。然后再次运行npm install。

如果你有在公共npm存储库中不可用的依赖项,试着暂时从package.json中移除这些依赖项。这将允许你运行npm install。最后,恢复你删除的依赖项和注册表配置,最后一次运行npm install来安装剩下的依赖项。

其他回答

以下步骤帮助我解决了这个问题:

停止所有的反应条(例如开始构建) 运行NPM cache clean——force 运行NPM install

npm cache clean --force

这适用于我的节点8和npm 6+

我通过以下方法克服了这个问题:

删除npm依赖的所有内容。你可以根据这个线程找到默认的安装位置: https://stackoverflow.com/a/5926706/1850297 在执行npm install命令之前,我建议执行npm cache clean——force

我在安装npm时也遇到了同样的问题。 经过大量的搜索,我发现删除您的.npmrc文件或其内容(在%USERPROFILE%/.npmrc中找到),将解决此问题。这对我很管用。

NPM缓存清理返回下面的消息 从npm@5开始,npm缓存会从损坏问题中自我修复,并且从缓存中提取的数据保证是有效的。如果你想确保所有内容都是一致的,请使用'npm cache verify'。另一方面,如果你正在调试安装程序的问题,你可以使用npm install——cache /tmp/empty-cache来使用一个临时缓存,而不是破坏实际的缓存。

如果你运行npm缓存校验,就像上面指定的那样,那么它实际上会运行缓存校验和垃圾收集来修复这个问题。

缓存验证和压缩(~\AppData\Roaming\npm- cache_cache): 内容验证:6183(447214684字节)内容垃圾收集:16 (653745 bytes)索引项:9633