Firebase 函数预部署错误:命令以非零退出代码终止

Posted

技术标签:

【中文标题】Firebase 函数预部署错误:命令以非零退出代码终止【英文标题】:Firebase function predeploy error :Command terminated with non-zero exit code1 【发布时间】:2020-04-07 18:11:53 【问题描述】:

我试着跑 firebase deploy --only functions 在我的 ionic 项目中出现此错误消息

C:\Program Files\Git\usr\local>firebase deploy --only functions
=== Deploying to 'testing-ed384'...

i  deploying functions
Running command: npm --prefix "%RESOURCE_DIR%" run lint
npm ERR! missing script: lint

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\CJ\AppData\Roaming\npm-cache\_logs\2019-12-13T14_26_34_575Z-debug.log
events.js:187
      throw er; // Unhandled 'error' event
      ^

Error: spawn npm --prefix "C:\Program Files\Git\usr\local\functions" run lint ENOENT
    at notFoundError (C:\Program Files\Git\usr\local\node_modules\firebase-tools\node_modules\cross-env\node_modules\cross-spawn\lib\enoent.js:6:26)
    at verifyENOENT (C:\Program Files\Git\usr\local\node_modules\firebase-tools\node_modules\cross-env\node_modules\cross-spawn\lib\enoent.js:40:16)
    at ChildProcess.cp.emit (C:\Program Files\Git\usr\local\node_modules\firebase-tools\node_modules\cross-env\node_modules\cross-spawn\lib\enoent.js:27:25)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
Emitted 'error' event on ChildProcess instance at:
    at ChildProcess.cp.emit (C:\Program Files\Git\usr\local\node_modules\firebase-tools\node_modules\cross-env\node_modules\cross-spawn\lib\enoent.js:30:37)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12) 
  code: 'ENOENT',
  errno: 'ENOENT',
  syscall: 'spawn npm --prefix "C:\\Program Files\\Git\\usr\\local\\functions" run lint',
  path: 'npm --prefix "C:\\Program Files\\Git\\usr\\local\\functions" run lint',
  spawnargs: []


Error: functions predeploy error: Command terminated with non-zero exit code1

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

这可能是因为:

您没有安装 eslint。如果您在运行 firebase init functions 时在提示 Do you want to use ESLint to catch probable bugs and enforce style? 时回答“否”和/或在提示安装依赖项时回答“否”,则可能会发生这种情况。如果是这种情况,请重新初始化环境以安装它。 您的 package.js 文件中缺少 eslint 包。要检查/修复此问题,请打开它并查看您是否有以下内容:
"devDependencies": 
    "eslint": "^4.12.0",
    "eslint-plugin-promise": "^3.6.0"
  ,

【讨论】:

【参考方案2】:

我通过重新启动 firebase init 解决了这个问题。然后不选择使用 eslint。之后,firebase 部署正常运行。

【讨论】:

以上是关于Firebase 函数预部署错误:命令以非零退出代码终止的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 服务器机器人错误“触发器以非零状态 2 退出”

命令 PhaseScriptExecution 以非零退出代码失败 - 使用 CocoaPods

进程“命令节点”以非零退出值 1 结束

命令 PhaseScriptExecution 以非零退出代码 iOS 失败

gradle process 命令 java 以非零退出值 1 结束

撤销钥匙串中的所有证书后,命令 PhaseScriptExecution 以非零退出代码失败