2

我正在尝试使用 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-toolsversion 2.2.0

4

2 回答 2

3

使用节点0.12或以上。

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

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

为那些必须使用 node.10.x 的人解决 - 直接使用 firebase-bolt:

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

在 firebase.json 中使用:“rules”:“./rules.json”

于 2015-12-17T12:40:15.137 回答
2

为那些必须使用 node.10.x 的人解决 - 直接使用 firebase-bolt:

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

在 firebase.json 中使用:“rules”:“./rules.json”

于 2015-12-17T22:10:53.480 回答