簡體   English   中英

部署錯誤 firebase 托管 - 找到 0 個文件

[英]Deployment error firebase hosting - 0 files found

描述:

在部署 firebase 托管期間,我收到一條錯誤消息,指出找到了 0 個文件。 我包含了我的 firebase.json 文件以供參考。

重現步驟:

運行命令firebase deploy --only hosting

觀察指出找到 0 個文件的錯誤消息

預期結果:

應使用指定文件成功部署 firebase 托管。

實際結果:

拋出錯誤,指出找到 0 個文件。

+  hosting: Finished running predeploy script.
i  hosting[hosting-project]: beginning deploy...
i  hosting[hosting-project]: found 0 files in hosting
+  hosting[hosting-project]: file upload complete
i  hosting[hosting-project]: finalizing version...
+  hosting[hosting-project]: version finalized
i  hosting[hosting-project]: releasing new version...
+  hosting[hosting-project]: release complete
+  Deploy complete!

筆記:

  • 我仔細檢查了 firebase.json 文件中的文件路徑,它似乎是正確的。
  • 我試過多次重新運行 deploy 命令,結果相同
  • 我還嘗試使用相同的 firebase.json 文件部署不同的項目,但問題仍然存在。
  • 在我的 firebase.json 文件中,我沒有直接以 dist 文件夾為目標,因為我在部署之前使用 predeploy 腳本運行 npm run lint 和 npm run build。 但是,我沒有忽略帶有 dist% 和 .dist/* 的 dist 文件夾,這意味着我沒有將它排除在部署之外。

附加的文件:

firebase.json

{
  "firestore": {
    "port": "8080"
  },
  "functions": [
    {
      "source": "functions",
      "codebase": "default",
      "ignore": [
        "node_modules",
        ".git",
        "firebase-debug.log",
        "firebase-debug.*.log"
      ],
      "predeploy": [
        "npm --prefix \"$RESOURCE_DIR\" run lint"
      ]
    }
  ],
  "hosting":{
    "public":"hosting",
    "ignore": [
      "*",
      "!dist/",
      "!dist/*",
    ],
    "rewrites":[
      {
        "source":"**",
        "destination":"dist/index.html"
      }
    ],
    "predeploy": [
      "npm --prefix \"$RESOURCE_DIR\" run lint",
      "npm --prefix \"$RESOURCE_DIR\" run build"
    ]
  }
}

我找到了一個解決方案來解決部署 firebase 托管期間“找到 0 個文件”的問題。 它可能不是最優雅的解決方案,但它確實有效。 在托管配置的“預部署”部分,我在“npm run lint”和“npm run build”命令的末尾添加了“..”以返回到根文件夾:

"npm --prefix \"$RESOURCE_DIR\\..\" run lint",
"npm --prefix \"$RESOURCE_DIR\\..\" run build"

這讓我可以直接在托管配置中定位 dist 文件夾,如官方文檔中所指定的那樣。 這是修改后的托管配置:

"hosting":{
    "public":"hosting/dist",
    "ignore": [
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites":[
      {
        "source":"**",
        "destination":"/index.html"
      }
    ],
    "predeploy": [
      "npm --prefix \"$RESOURCE_DIR\\..\" run lint",
      "npm --prefix \"$RESOURCE_DIR\\..\" run build"
    ]
  }

我希望這對可能遇到相同問題的其他人有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM