【问题标题】:Firebase Function Deployment issue: package.json not found in %RESOURCE_DIR%Firebase 功能部署问题:在 %RESOURCE_DIR% 中找不到 package.json
【发布时间】:2018-11-26 11:38:40
【问题描述】:

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

复制步骤

  • firebase 初始化
  • 仅选择函数
  • 选择 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

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

请帮忙!

谢谢。

【问题讨论】:

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


    【解决方案1】:

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

    npm install -g firebase-tools
    

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

    【讨论】:

      【解决方案2】:

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

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

      说明:此修复适用于 Windows,因为 %RESOURCE_DIR% 将仅被 Windows 命令行解释器识别为环境变量。最终结果是,该项目不再是跨平台的,正如similar question 的答案中所述。

      【讨论】:

      • 非常感谢,刚刚成功!你知道这有什么特别的原因吗?这是因为 DOS 和 *nix 中的文件引用不同吗?
      • 是的,Dos 中的变量以 % 开头,而对于 *nix,它们以 $ 开头。
      【解决方案3】:

      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

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

          第一步:打开 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": [] }

          现在部署,它工作正常

          【讨论】:

            【解决方案6】:

            解决方案

            "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"
              ]
            }
            

            【讨论】:

              【解决方案7】:

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

              【讨论】:

                猜你喜欢
                • 2018-08-09
                • 1970-01-01
                • 2018-03-31
                • 1970-01-01
                • 2020-07-09
                • 2017-08-06
                • 2017-08-18
                • 1970-01-01
                • 2019-09-27
                相关资源
                最近更新 更多