Travis 上的 Firebase 部署错误

Firebase deploy error on Travis

我正在尝试使用 Travis 部署到 Firebase 托管,但出现以下错误:

$ npm install -g firebase-tools
$ firebase --non-interactive deploy --token "${FIREBASE_TOKEN}"
Error: There was an error loading firebase.json:
undefined is not a function

该错误没有帮助,并且看起来像是 firebase-tools 中的错误,或者我以意外的方式调用了它。您认为哪里可能有问题或我应该尝试调查什么?

我的 firebase.json 看起来像:

{
  "firebase": "myApp",
  "public": "./dist",
  "ignore": [
    "firebase.json",
    "**/.*",
    "**/node_modules/**"
  ],
  "rewrites": [
    {
      "source": "**",
      "destination": "/index.html"
    }
  ],
  "rules": "./rules.bolt"
}

firebase.json 在根目录中,运行 同样的命令在本地工作正常。

这是我的完整 .travis.yml:

install:
  - npm install
  - bower install
script:
  - gulp
after_success:
  - npm install -g firebase-tools
  - firebase --non-interactive deploy --token "${FIREBASE_TOKEN}"
cache:
  directories:
  - node_modules
  - bower_components

我清除了 Travis 上的缓存并确认它是 运行 firebase-tools 版本 2.2.0

使用节点0.12或以上

虽然 Firebase CLI 和 Bolt 编译器都使用节点 0.10+,但使用 Firebase CLI 编译 Bolt 规则需要节点 0.12+。

这是因为在节点 0.12 之前没有办法同步调用外部模块,Firebase CLI 需要它来编译 Bolt 规则。

解决那些必须使用节点的问题。10.x - 直接使用 firebase-bolt:

$ firebase-bolt rules.bolt  # creates rules.json

在 firebase.json 中使用:"rules": "./rules.json"

解决那些必须使用节点的问题。10.x - 直接使用 firebase-bolt:

$ firebase-bolt rules.bolt  # creates rules.json

在 firebase.json 中使用:"rules": "./rules.json"