【问题标题】:Firebase Cloud Functions - Won't deployFirebase 云功能 - 不会部署
【发布时间】:2018-11-11 16:37:59
【问题描述】:

好吧,所以我正在为此扯掉我的头发......

由于某种原因,即使我已按照 firebase 云功能的所有必要说明进行操作,我也无法部署我收到错误消息:

构建失败:模块@firebase/app 的指定版本范围不是 字符串

但是我看不到这个指定的版本范围不应该是字符串吗?我查看了 package.json,但看不出哪里有问题:

    "@firebase/app": {
          "version": "0.1.6",
          "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.1.6.tgz",
          "integrity": "sha512-zvA+Tsc6lmuMYmDYsgoXpmPzzLLhdeH97/UVN79YGlFqCihrYAaKUi1/osoAhjXPZaV1+TXoqiSEB2vWHU7Puw==",
          "requires": {
            "@firebase/app-types": "0.1.1",
            "@firebase/util": "0.1.6"
          }
}

我也猜想这只是因为这是第一个出现此错误的模块,似乎根本上是错误的。

我必须通过 sudo 安装 npm 模块,这可能是问题吗?它创建了一个锁定的 package-locked.json 文件,我将其重命名为“package.json”,以便完全能够部署。

提前致谢!

【问题讨论】:

  • 是来自您的package.json 吗?如果是这样,那是你的问题。依赖项需要声明为:{"dependencies": {"@firebase/app": "^0.1.6"}} 而不是您粘贴的嵌套对象。
  • @MichaelBleigh 感谢您的回答!这确实来自 package.json,但我只是使用“sudo npm install firebase-admin --save”安装了它,所以这就是我感到困惑的原因。你的意思是我应该手动重写这个?
  • 我注意到您对 package.json 文件的看法完全正确,我将它与之前项目中的另一个文件进行了比较。将尝试复制那个,看看我是否有任何进展

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


【解决方案1】:

我遇到了同样的问题。我的问题是“引擎”部分在依赖部分。修正如下:

{
  "name": "functions",
  "description": "Cloud Functions for Firebase",
  "scripts": {
    "serve": "firebase serve --only functions",
    "shell": "firebase functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  },
  "engines": {
    "node": "8"
  },
    "dependencies": {
    "actions-on-google": "2.0.0-alpha.4",
    "async": "^2.6.1",
    "dialogflow": "^0.1.0",
    "dialogflow-fulfillment": "0.3.0-beta.3",
    "firebase-admin": "^6.0.0",
    "firebase-functions": "^2.1.0",
    "firebase-tools": "6.0.1",
    "geofirex": "^0.0.6",
    "google-auth-library": "1.6.1",
    "googleapis": "32.0.0",
    "lodash.get": "^4.4.2",
    "request": "^2.87.0",
    "rss-parser": "^3.5.2",
    "rxjs": "^6.3.3"
  },
  "private": true
}

【讨论】:

    【解决方案2】:

    很抱歉出现问题。

    我找到了解决方案,显然我的 npm init 不起作用。我重新做了,所有命令都正常工作。

    此错误的解决方法:

    1. 删除 package.json 和 node_modules

    2. 运行“npm init”

    3. 重新安装节点模块

    现在您应该可以像往常一样部署了。

    感谢@MichaelBleigh 帮助我认识到这个愚蠢的错误

    【讨论】:

      猜你喜欢
      • 2021-12-01
      • 2021-11-17
      • 1970-01-01
      • 2020-09-04
      • 2018-08-09
      • 2018-07-24
      • 2018-08-05
      相关资源
      最近更新 更多