如何修复Google Cloud Build中的“ npm ERR!超出最大调用堆栈大小”?

问题描述

我最新的Google Cloud Build失败,并出现以下错误

Step 3/16 : RUN npm i
 ---> Running in 9b3b8df05c12
npm notice 
npm notice New patch version of npm available! 7.0.2 -> 7.0.3
npm notice Changelog: <https://github.com/npm/cli/releases/tag/v7.0.3>
npm notice Run `npm install -g npm@7.0.3` to update!
npm notice 
npm ERR! Maximum call stack size exceeded

最后一次成功构建是在10月17日。从那以后,我只做了一次提交,就改变了一些打字稿。 dockerfile或NPM依赖项中的任何内容都没有改变。

Dockerfile的相关部分如下所示:

FROM node AS minifier
copY MyProject/Client .
RUN npm i
RUN npm install -g grunt-cli rollup
RUN grunt release

该问题似乎专门与RUN npm i命令有关。这是一个错误吗?有什么我可以解决的吗?我确实重试了构建,但是遇到了相同的错误

解决方法

这是由于npm的最新版本(即v7.0.3)引起的问题。有多种选择:

  • 您可以将基本图像更改为node:15.0.0node:15.0.0-slim
  • 或者使用yarn代替npm也可以解决此问题
  • 在Dockerfile中的npm cache clean --force之前运行npm i

我建议更改基本图像。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...