firebase部署后出现“意外错误”

时间:2017-02-26 23:19:46

标签: firebase firebase-hosting

当我通过firebase托管我的网页时,然后在编写命令firebase deploy后,我收到以下错误:

Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. All rights reserved.

C:\Users\amarg\Desktop\amar>firebase init

     ######## #### ########  ######## ########     ###     ######  ########
     ##        ##  ##     ## ##       ##     ##  ##   ##  ##       ##
     ######    ##  ########  ######   ########  #########  ######  ######
     ##        ##  ##    ##  ##       ##     ## ##     ##       ## ##
     ##       #### ##     ## ######## ########  ##     ##  ######  ########

You're about to initialize a Firebase project in this directory:

  C:\Users\amarg\Desktop\amar

Before we get started, keep in mind:

  * You are initializing in an existing Firebase project directory

? Are you ready to proceed? Yes
? What Firebase CLI features do you want to setup for this folder? Hosting: Configure and deploy Firebase Hosting sites


=== Project Setup

First, let's associate this project directory with a Firebase project.
You can create multiple project aliases by running firebase use --add,
but for now we'll just set up a default project.

i  .firebaserc already has a default project, skipping

=== Hosting Setup

Your public directory is the folder (relative to your project directory) that
will contain Hosting assets to be uploaded with firebase deploy. If you
have a build process for your assets, use your build's output directory.

? What do you want to use as your public directory? public
? Configure as a single-page app (rewrite all urls to /index.html)? No
? File public/404.html already exists. Overwrite? No
i  Skipping write of public/404.html
? File public/index.html already exists. Overwrite? No
i  Skipping write of public/index.html

i  Writing configuration info to firebase.json...
i  Writing project information to .firebaserc...

+  Firebase initialization complete!

C:\Users\amarg\Desktop\amar>firebase deploy

=== Deploying to 'learningweb-6b2a3'...

i  deploying hosting
+  database: rules ready to deploy.
i  hosting: preparing public directory for upload...

Error: An unexpected error has occurred.

C:\Users\amarg\Desktop\amar>

19 个答案:

答案 0 :(得分:5)

对我来说,更新firebase-tools解决了该问题

在cmd提示符下运行以下命令

npm install -g firebase-tools

然后再次尝试将Firebase初始化

答案 1 :(得分:3)

确保通过在终端上运行firebase login登录。

答案 2 :(得分:2)

复制此内容并粘贴到firebase.json中

{
    "hosting": {
      "public": "./",
      "ignore": [
        "firebase.json",
        "database-rules.json",
        "storage.rules",
        "functions"
      ],
      "headers": [{
        "source" : "**/*.@(js|html)",
        "headers" : [ {
          "key" : "Cache-Control",
          "value" : "max-age=0"
        } ]
      }]
    }
  }

答案 3 :(得分:2)

对我来说,我尝试了很多,然后我发现 firebase.json 仍然有功能, 我删除了它并且它起作用了 顺便说一下我正在使用

firebase deploy --except functions
firebase deploy --only hosting

那没有帮助 所以也许删除你不需要的

{
  *"functions": {
    "predeploy": [
  "npm --prefix \"$RESOURCE_DIR\" run lint",
  "npm --prefix \"$RESOURCE_DIR\" run build"
 ]
  },*
 "hosting": {
   "public": "build",
   "ignore": [
   "firebase.json",
   "**/.*",
   "**/node_modules/**"
 ]
}
 }

答案 4 :(得分:2)

我过去使用 Firebase 函数,我放弃了这个想法并在 node.js 中创建了我想要的。

因此,如果您不使用 firebase 函数,请删除 firebase.json 文件中的以下内容

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

答案 5 :(得分:1)

这可能是由于npm和节点版本 对于Mac OS,您可以使用以下命令更新npm:

npm install -g npm@latest

并直接通过链接https://nodejs.org/en/并下载安装程序来更新节点。 并运行

npm install -g firebase-tools

用于消除Firebase托管部署错误(同样如果您要更新现有托管网站) 您可以再次进行处理 1] firebase login 2] firebase init 3] firebase deploy

确保您当前的文件夹有两件事:  公用文件夹(包含所有文件index.html)和firebase.json文件

答案 6 :(得分:1)

通过键入exit并单击Enter,关闭IDE的集成终端,然后重新打开并输入命令firebase deploy

如果以上选项不起作用,则只需在linux / mac中使用终端,在Windows中使用CMD并导航至该文件夹,然后提供firebase deploy命令

答案 7 :(得分:1)

在firebase.json文件中,您是否为function或functions.source设置了值?如果这样做,则可能导致此问题。 删除angular.json中的函数,它将起作用

Firebase document for functions

答案 8 :(得分:1)

在我的情况下,请解决:

firebase deploy --except functions

答案 9 :(得分:1)

是的,我遇到过这个问题.. 这是因为我使用的节点版本Node v.8.0.0 我只是将它降级到Node v.16.0.3,然后我的部署完成了:)

答案 10 :(得分:0)

首先,查看项目根目录(firebase.json旁)中的firebase-debug.log可能有助于定义错误。在我的情况下,出现“无法读取未定义的属性'deploys'” 错误。有一个关联的issue on github。删除多余的网站(我实际上并不需要它们),而仅将默认网站留在Firebase托管仪表板中解决了我的问题。

答案 11 :(得分:0)

如果您仍使用firebase serve在localhost上提供站点,则可能会导致问题。关闭它,然后尝试部署。为我工作。

答案 12 :(得分:0)

我没有运行npm install时收到该错误。试试看。我希望简单的解决方案可以帮助遇到相同问题的任何人。

答案 13 :(得分:0)

要解决此问题而无需重新启动,

  1. 您必须确保关闭服务器,方法是单击 CTRL + C
  2. 然后通过firebase deploy --only functions
  3. 部署功能
  4. 然后再次运行它firebase --serve

答案 14 :(得分:0)

就我而言,当我没有在firebase.json中设置站点名称时,就会发生此错误。

Example of the firebase.json with site highlighted

答案 15 :(得分:0)

对我来说,这是因为我在firebase deploy文件夹中运行functions。我需要在父firebase目录中运行它

答案 16 :(得分:0)

你应该检查你是否有nodeJs的文件夹和你网站的文件夹在 首先是同一个本地磁盘!

我遇到了同样的问题,NodeJs 在 local disk (D:) 中,我尝试从 local disk (C:) 部署,但是当我将网站的文件夹更改为 (D:) 时,它工作正常。

答案 17 :(得分:0)

firebase deploy, firebase serve, firebase ... 在使用 firebase-debug.logCloud Functions for Firebase 中没有任何有意义的信息吗?

检查您的 package.json 文件夹中是否有 functions。它应该具有来自您的 rootpackage.json 的所有依赖项,并且看起来像这样:

{
  "name": "functions",
  "description": "Cloud Functions for Firebase",
  "engines": {
    "node": "12"
  },
  "scripts": {
    "serve": "firebase serve --only functions",
    "shell": "firebase functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  },
  "dependencies": {
    "@angular-builders/custom-webpack": "^11.1.1",
    "@angular/animations": "^11.2.7",
    "@angular/cdk": "^11.2.6",
    ...
  },
  "private": true
}

devDependencies 不是必需的。

答案 18 :(得分:0)

只需检查您的 firebase.json 并删除不必要的依赖项,检查我的

{
"hosting": {
"public": "build",
"ignore": [
  "firebase.json",
  "**/.*",
  "**/node_modules/**"
],
"rewrites": [
  {
    "source": "**",
    "destination": "/index.html"
  }
]
}
}