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


当前回答

我尝试了一切方法来解决这个问题在我的windows 7机器上

重新安装和重建npm

最后,我浪费了一整天的时间,解决了这个小配置设置问题。

我是如何解决这个问题的

删除全局.npmrc中的项目特定配置 例如drive:/Windows/Users/.. npmrc

其他回答

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

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

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

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

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

所以命令是:

npm cache clean --force

我不是Windows用户,所以如果你是,试着检查Rene Knop的评论。

对于Unix/OSX用户,我删除了根.npmrc文件~/.npmrc。 在你尝试之前,拜托, 看看那边是否没有必要的东西 您可以使用这个命令将所有内容带入您的终端:cat ~/。npmrc。

如果你有这样的东西:

cat: /Users/$USER/.npmrc: No such file or directory

保存副本:

cp ~/.npmrc ~/.npmrc_copy

现在,尝试删除它(适用于bash用户:Unix / Ubuntu / OSX…):

rm -f ~/.npmrc

这对我很管用。 希望这对其他人有所帮助。

我尝试了一切方法来解决这个问题在我的windows 7机器上

重新安装和重建npm

最后,我浪费了一整天的时间,解决了这个小配置设置问题。

我是如何解决这个问题的

删除全局.npmrc中的项目特定配置 例如drive:/Windows/Users/.. npmrc

对于那些在使用Jenkins(或任何CI)构建Docker映像时遇到此问题的人,请确保package-lock。Json也被复制到容器中。

COPY ./src/package*.json /home/node/
RUN npm install

对我们来说,安装实际上很好,错误只发生在运行npm prune production生产映像时。