8

我在部署 Firebase Cloud Functions 时遇到问题。

重现步骤

  • 火力基地初始化
  • 仅选择功能
  • 选择 Firebase 项目
  • 选择 Javascript
  • 使用 ESLint
  • 立即使用 npm 安装依赖项
  • 运行 firebase 部署

预期结果

期待 firebase-tools 部署云功能。

实际结果

收到以下错误消息:

λ firebase deploy

=== Deploying to '<projects>'...

i  deploying functions
Running command: npm --prefix "$RESOURCE_DIR" run lint
npm ERR! path ...path\firebaseFunction\%RESOURCE_DIR%\package.json
npm ERR! code ENOENT
npm ERR! errno -4058
npm ERR! syscall open
npm ERR! enoent ENOENT: no such file or directory, open '...path\firebaseFunction\%RESOURCE_DIR%\package.json'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent

npm ERR! A complete log of this run can be found in:
npm ERR!     ...path\AppData\Roaming\npm-cache\_logs\2018-06-17T10_02_45_577Z-debug.log

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

我已经尝试用谷歌搜索它并按照以下链接上的解决方案进行操作,但它对我不起作用: https ://github.com/firebase/firebase-tools/issues/610

请帮忙!

谢谢你。

4

7 回答 7

18

尝试用“firebase.json”文件中的字符串"$RESOURCE_DIR"替换。"%RESOURCE_DIR%"

现在再次运行部署命令。它对我有用。

说明:此修复程序适用于 Windows,因为%RESOURCE_DIR%它只会被 Windows 命令行解释器识别为环境变量。作为最终结果,该项目不再是跨平台的,正如在这个类似问题的答案中提到的那样。

于 2018-06-24T19:23:25.877 回答
3

1.在firebase.json文件中

尝试替换$RESOURCE_DIR%RESOURCE_DIR% and

"npm --prefix $RESOURCE_DIR run lint" to "npm --prefix %RESOURCE_DIR% run lint"

(以上刚刚解决)

2. npm install -g git://github.com/firebase/firebase-tools#master

请在您的项目文件夹中再次尝试此安装它应该可以解决问题

于 2018-07-26T21:03:53.140 回答
1

我遇到了同样的问题,只需从 firebase.json 文件中删除预部署,它就可以正常工作

于 2018-09-16T11:36:31.573 回答
1

看起来您正在使用旧版本的 Firebase CLI,或者使用旧版本初始化的项目。最干净的做法是升级您的 CLI:

npm install -g firebase-tools

并使用firebase init. 然后,使用旧项目中的代码重建您的新项目。

于 2018-06-17T17:03:12.293 回答
0

我已经尝试了以上所有解决方案,但仍然无法正常工作@firebase

于 2021-11-18T17:05:12.507 回答
0

解决方案

"functions": {
  "predeploy": [
    "npm --prefix \"$RESOURCE_DIR\" run lint",
    "npm --prefix \"$RESOURCE_DIR\" run build"
  ]
}

"functions": {
  "predeploy": [
    "npm --prefix \"%RESOURCE_DIR%\" run lint",
    "npm --prefix \"%RESOURCE_DIR%\" run build"
  ]
}
于 2020-10-17T20:17:35.300 回答
-1

Step1: 打开 firebase.json 你会看到这个 JSON 文件

"functions": { "predeploy": [ "npm --prefix \"$RESOURCE_DIR\" run lint", "npm --prefix \"$RESOURCE_DIR\" run build" ] }

Step2:删除“npm --prefix \"$RESOURCE_DIR\" run lint",和"npm --prefix \"$RESOURCE_DIR\" run build"

"functions": { "predeploy": [] }

现在部署,它工作正常

于 2019-09-12T02:04:07.303 回答