Firebase功能部署问题:%RESOURCE_DIR%中找不到package.json

时间:2018-06-17 10:13:38

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

我遇到部署Firebase云功能的问题。

重现的步骤

  • firebase init
  • 仅选择功能
  • 选择Firebase项目
  • 选择Javascript
  • 使用ESLint
  • 现在用npm安装依赖项
  • 运行firebase deploy

预期结果

期望使用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

我已经尝试使用Google搜索并按照以下链接中的解决方案进行了搜索,但这对我不起作用: https://github.com/firebase/firebase-tools/issues/610

请帮忙!

谢谢。

6 个答案:

答案 0 :(得分:17)

尝试在“ firebase.json”文件中将字符串“ $ RESOURCE_DIR”替换为“%RESOURCE_DIR%”。

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

编辑:此修复程序适用于Windows,现在该项目将不再是跨平台的,如以下答案中所述:similar question

答案 1 :(得分:2)

1。在firebase.json文件

尝试将$RESOURCE_DIR替换为%RESOURCE_DIR%    和

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

(上面的方法已经解决了)

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

请在您的项目文件夹中再次尝试安装,这样可以解决问题

答案 2 :(得分:0)

您似乎要么使用旧版本的Firebase CLI,要么使用旧版本初始化的项目。最干净的事情是升级你的CLI:

npm install -g firebase-tools

使用firebase init从头开始创建一个全新的项目。然后,使用旧项目中的代码重新构建新项目。

答案 3 :(得分:0)

我遇到了同样的问题,只是从firebase.json文件中删除了predeploy,它会正常工作

答案 4 :(得分:0)

第一步:打开firebase.json,您将显示此JSON文件

Dash(length: 200, dashColor: Colors.red)

Step2:删除“ npm --prefix \“ $ RESOURCE_DIR \”运行皮棉”,和“ npm --prefix \“ $ RESOURCE_DIR \”运行构建“

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

现在部署,一切正常

答案 5 :(得分: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"
  ]
}