我正在尝试运行 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
并尝试重新安装。无法理解导致此问题的原因以及如何解决它。
metzelder's answer 帮助我解决了这个问题。但是,如果您运行命令 npm cache clean
,它会给您一条消息
从 npm@5 开始,npm 缓存从损坏问题中自我修复,并且从缓存中提取的数据保证有效
因此,从 npm5 开始,您可以通过在命令中添加 --force
标志来实现。
所以命令是:
npm cache clean --force
npm rebuild
它解决了我的问题
尝试删除 package-lock.json
和 node_modules
文件夹:
rm package-lock.json
rm -r node_modules
npm install
应该恢复 package-lock.json
文件
functions
文件夹中运行。我犯了在根文件夹中运行它的错误
package-lock.json
,但不一定与自上次创建以来可用的新版本依赖项相同。这些新版本之一可能会破坏事情。
npm uninstall
npm cache clean --force
我尝试了这两种方法,但没有奏效。之后,我删除了 node_modules
目录并再次运行 npm install
,它仍然不起作用。最后,我删除了 package-lock.json
并使用创建了一个新的 package-lock.json
文件
npm install
我对 npm install
有同样的问题。经过大量搜索,我发现删除您的 .npmrc
文件或其内容(在 %USERPROFILE%/.npmrc
找到)将解决此问题。这对我有用。
我通过执行以下操作克服了这个问题:
删除 npm 依赖项的所有内容。您可以根据此线程找到默认安装位置:https://stackoverflow.com/a/5926706/1850297
在运行 npm install 命令之前,我建议运行 npm cache clean --force
npm cache clean
的消息:“从 npm@5 开始,npm 缓存可以从损坏问题中自我修复,并且保证从缓存中提取的数据是有效的。”
npm rebuild
肯定会工作
就我而言,更新到最新版本:
npm install -g npm
我删除了
节点模块
然后重新安装
npm 安装
它对我有用
我也遇到了同样的问题,这就是我解决它的方法。
首先,您需要确保您的 node 和 npm 版本是最新的。如果不是,请将您的节点和 npm 包升级到最新版本。 nvm install 12.18.3 // 通过节点版本管理器更新节点版本 npm install npm // 将你的 npm 版本更新到最新删除你的 node_modules 文件夹和 package-lock.json 文件。使用以下命令强制清理整个 NPM 缓存。 npm cache clean --force 重新安装所有依赖项。 npm install 如果上述步骤没有解决您的问题,请在执行以下命令后尝试重新安装您的依赖项。 npm 重建
npm eject
,但我仍然有一些文件夹我永远无法删除 common-tags
、react-dev-utils
和 stream-browserify
。
如果您尝试安装不存在的软件包或尝试安装不存在的版本,也会发生此问题。
npm cache clean 返回以下消息 从 npm@5 开始,npm 缓存从损坏问题中自我修复,并且保证从缓存中提取的数据是有效的。如果您想确保一切一致,请改用“npm cache verify”。另一方面,如果您正在调试安装程序的问题,您可以使用 npm install --cache /tmp/empty-cache 来使用临时缓存而不是核对实际缓存。
如果您按照上面的说明运行 npm cache verify
,那么它实际上会运行缓存验证和垃圾回收来解决问题。
缓存验证和压缩 (~\AppData\Roaming\npm-cache_cacache): 内容验证: 6183 (447214684 字节) 内容垃圾收集: 16 (653745 字节) 索引条目: 9633
对我来说发生在 docker (node:15-buster) 中。
请记住使用 WORKDIR /<folder>
,以免它与安装的原始 npm 库冲突。
该文件夹可以是系统文件夹以外的任何内容,因此包括使用 /
。
WORKDIR /
,但似乎从 /
执行 npm i
或 npm ci
会炸毁事情。
如果这些答案都不适合您,可能是因为您使用的终端不正确/您的 node_modules
被您计算机的另一部分使用。
就我而言,当我执行 sudo npm i
时,我一直在此错误(超出最大调用堆栈大小)和访问错误事件之间进行权衡。
解决方法是关闭我的 IDE(即 WebStorm),在基本终端中运行 npm i
,仅此而已。
我不是 Windows 用户,所以如果您是,请尝试检查 Rene Knop comment。
对于 Unix/OSX 用户,我已删除根 .npmrc 文件 ~/.npmrc
。
在您尝试之前,请< /strong>,检查那里是否没有必要的东西,您可以使用此命令将所有内容带入您的终端:cat ~/.npmrc
。
如果你有类似的东西:
cat: /Users/$USER/.npmrc: No such file or directory
保存副本:
cp ~/.npmrc ~/.npmrc_copy
现在,尝试删除它(适用于 bash 用户:Unix / Ubuntu / OSX ...):
rm -f ~/.npmrc
这对我有用。希望这对其他人有帮助。
我也有同样的问题。我曾尝试过以前的解决方案,但对我来说解决方案要简单得多。我只需要删除目录中的空间,然后再次运行 npm i
感谢:https://github.com/nodejs/node-gyp/issues/809#issuecomment-155019383 指出这一点。
在我的例子中,我有一个自定义 .npmrc
文件,其中包含一个用于通过私有 npm 注册表进行身份验证的身份验证令牌。
令牌已过期,这有助于在本地返回 code E401: Incorrect or missing password
,但从 CI 构建返回 ERR! Maximum call stack size exceeded
。
您卸载 npm 包并强制清理缓存并关闭终端并重新安装任何包。
$sudo npm uninstall <package - name>
$sudo npm cache clean --force
然后重新启动终端并检查
仍然无法将 npm 和 node 都升级到最新版本
一般来说,一旦安装了模块,使用 npm ci
而不是 npm install
会方便得多。请在生产环境中查看 this SO answer for the advantages of the former with respect to the later。所以请运行
npm ci
所有依赖项都会更新,问题就会消失。或者在一个和另一个之间有一些严重的不同步的情况下它会出错。
大多数情况下,如果您使用的是您工作的组织提供的系统,并且它的 vpn 限制了此命令的使用,则会出现此问题。在这种情况下,您可以尝试断开与组织 vpn 的连接,然后执行此命令。
我想尽一切办法在我的 Mac 上解决这个问题。我认为问题开始于我已经从 Node.js 下载 npm,然后使用 Homebrew 重新安装它,同时跟随 Team Treehouse 视频。
这是我尝试过的:
来自https://docs.npmjs.com/misc/removing-npm
sudo npm uninstall npm -g
sudo make uninstall
sudo rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/npm*
来自How do I completely uninstall Node.js, and reinstall from beginning (Mac OS X)
sudo rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/{npm*,node*,man1/node*}
这是有效的:
最后,唯一对我有用的是从 GitHub 克隆 npm-reinstall 存储库,它完全删除了我 Mac 上与 npm 相关的所有内容。
https://github.com/brock/node-reinstall
然后我不得不从 Node.js 重新安装 node 和 npm。
我想尽一切办法在我的 Windows 7 机器上解决这个问题,比如
重新安装和重建 npm
最后,我浪费了一整天的时间来解决这个小的配置设置问题。
我是如何解决这个问题的
在全局 .npmrc 中删除我的项目特定配置,例如 drive:/Windows/Users/../.npmrc
我解决了它 100% 我在 gulp 版本中遇到了这个问题:3.5.6。
您应该清理 package-lock.js,然后运行 npm install
并且它可以正常工作
我们公司的开发环境使用 Artifactory
作为我们 NPM 依赖项的默认注册表,并且在运行 npm install
时它默认为这个,这不起作用......因此通过 npm install --registry https://registry.npmjs.org
手动指定主 npm 注册表修复了这个问题为了我...
今天我们在运行 npm prune
时遇到了这个错误,即使在运行 npm cache clean --force
之后。
版本:
node 13.8.0
npm 6.13.6
删除 package-lock.json
也适用于这种情况。谢谢你们!
我遇到了同样的错误,我试图将 jest 安装到 monorepo 项目中的一个包中。
如果您使用 Yarn + Learna 打包 monorepo 项目,则必须导航到目标包内的 package.json,然后运行 npm install
或 npm install <package name>
。
我不知道为什么,但我用 sudo 运行了 npm install
,它起作用了。
sudo npm install
我遇到了这个问题,这是由于我的 git 可执行文件的升级。我回滚到 Git-2.21.0.rc1.windows.1-64-bit 并将其添加到我的环境路径中,它解决了我的问题。
最终在 Mac 上对我有用的一件事是使用 NVM 从节点 8.12 升级到 10.x。
我用 NVM 卸载了所有其他版本的 Node,然后安装了 10.x,然后运行 nvm alias default node
,它告诉 NVM 始终默认为 shell 上最新的可用节点版本。
在那之后,我的实时重新加载问题就消失了!
切换到纱线为我解决了这个问题。
npm
的直接引用,他并没有真正添加任何有用的东西,但此时更多的是一个模因。您可以在此处阅读有关实际命令的更多信息:docs.npmjs.com/cli-commands/cache.html 它明确解释了力的作用;现在所有缓存项都已完全验证其完整性,如果某些内容已损坏,它将自我修复,因此缓存应始终处于正确状态并且永远不会清除,除非您尝试回收磁盘空间,因此您需要追加--force
。注意:可能因版本而异。