如何部署使用tgz文件作为依赖项的Google Cloud Function?

时间:2019-04-08 16:08:34

标签: node.js npm google-cloud-functions

出于不必要的原因,我需要更新运行Node 10的现有Google Cloud Function,以使用本地tgz文件作为其依赖项之一(通过public result = "Get Data by Id"; public getDataText(id) { const reqObj = this.mydata.find(item => item.id === id); this.result = reqObj ? reqObj.text : 'nothing found'; } <button (click)="getDataText(11)">{{result})</button> 生成;在本地工作)。当我尝试在Cloud Function部署中包含存档文件和更新的package.json时,遇到以下错误:

  

错误:(gcloud.functions.deploy)OperationError:代码= 3,消息=构建   失败:{“错误”:{“ canonicalCode”:“ INVALID_ARGUMENT”,   “ errorMessage”:“ npm pack的输出为stderr:\ nnpm ERR!cb()从不   \ n \ nnpm错误!这是npm本身的错误。请举报   此错误位于:\ nnpm错误! https://npm.community \ n \ nnpm错误!一种   可以在以下位置找到该运行的完整日志:\ nnpm ERR!
  /builder/home/.npm/_logs/2019-04-08T16_01_08_142Z-debug.log\nnpm错误!   代码ELIFECYCLE \ nnpm ERR! errno 1 \ nnpm错误! @预安装:npm_install \ nnpm错误!退出状态1 \ nnpm错误! \ nnpm错误! @预安装脚本失败。\ nnpm ERR!这可能不是   npm有问题。可能还有其他日志记录输出   以上。\ n \ nnpm错误!可以在以下位置找到此运行的完整日志:\ nnpm   错误!
  /builder/home/.npm/_logs/2019-04-08T16_01_08_171Z-debug.log\n\n错误:   npm --prefix functions install返回了代码:1“,” errorType“:” InternalError“,   “ errorId”:“ C9487FAD”}}

不幸的是,我无法访问错误消息中引用的日志文件。不过,我会考虑向NPM提交票证。

我想知道是否有人知道解决此问题的方法,或者在将npm_install的依赖项包含在Cloud Function中时是否应该使用其他策略。

环境:

节点v10.14.2

NPM 6.7.0

package.json:

pack

1 个答案:

答案 0 :(得分:0)

我确定您现在已经找到了解决方案,但是对于那些遇到相同错误的人:

不要将 package-lock.json 保留在 functions 文件夹中,不应将其发送到安装了Cloud Functions的服务器上npm会自行打包。