我试图运行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,并尝试重新安装。不能理解是什么原因导致了这个,以及如何解决它。


当前回答

我也遇到过同样的问题,我是这样解决的。

First of all you need to make sure that your node and npm versions are up to date. if not please upgrade your node and npm packages to latest versions. nvm install 12.18.3 // update node version through node version manager npm install npm // update your npm version to latest Delete your node_modules folder and package-lock.json file. Force clean the entire NPM cache by using following comand. npm cache clean --force Re-Install all the dependencies. npm install If above step didn't resolve your problem, try to re-install your dependencies after executing following command. npm rebuild

其他回答

TLDR

对于那些使用NVM的人,请确保您使用的是正确的Node和NPM版本!

背景

我开始得到这个错误后,我开始使用NVM为不同的项目。当我为我的工作在一个项目上运行npm install时,我得到了这个错误,说明已经超过了最大调用堆栈大小。

这是由于我使用了Node 12及其附带的NPM版本,而我本应该使用Node 16。

解决方案

切换到Node和NPM的最新版本; NVM使用<版本>(例如,NVM使用16)

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

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

错误消息可能与你试图运行的npm进程没有直接关系,它可能是其他正在运行的节点进程冲突或耗尽了资源。

在我的情况下,我有一个空的node_modules文件夹从最近的init和仍然得到

npm犯错!超过最大调用堆栈大小

当运行npm install——save-dev @wordpress/scripts用于WordPress插件开发时。

问题是在我的wp-content文件夹中运行的实时重新加载监视器,并停止了安装第一次工作。

rm -rf node_modules

然后重新安装对我来说很有效。

注意:可能不需要撕下你的锁文件

Metzelder的回答帮助我解决了这个问题。但是如果你运行NPM cache clean命令,它会给你一个消息

从npm@5开始,npm缓存会从损坏问题中自我修复,并且从缓存中提取的数据保证是有效的

所以,从npm5开始,你可以在命令中添加——force标志。

所以命令是:

npm cache clean --force