簡體   English   中英

如何解決 Cloud Functions 項目中的新 ESLint 錯誤?

[英]How do I resolve new ESLint errors in my Cloud Functions project?

另一天關於 Firebase 的另一個問題:

我對 Firebase/node.js/npm 比較陌生......

我目前正在嘗試使用 Firebase 為大學項目構建移動應用后端。 我使用 node.js編寫而不是在本地測試我的函數,然后我使用 Firebase CLI 和“firebase deploy”部署它們。 一切都很順利,直到我在一小時前開始工作。 我的代碼中有一個小錯誤,很容易修復。 在同一個“部署周期”中,Firebase CLI 向我展示了 firebase-tools 的可用更新,建議我使用

npm install -g firebase-tools

這就是我所做的,也是我悲劇開始的地方。 CLI 然后建議卸載/重新安裝

    npm uninstall -g @google-cloud/functions-emulator
    npm install -g @google-cloud/functions-emulator

所以我做到了。 然后我嘗試部署我的函數(來自本地 index.js)並收到以下警告:

錯誤:Firebase 配置變量不可用。 請使用最新版本的 Firebase CLI 部署此功能

我使用npm install -g firebase-tools來更新 firebase CLI,但沒有任何改變。

我認為最好只備份我的舊項目並在新文件夾中初始化一個新項目並將其連接到我現有的 FB-Project 並將我的舊 index.js 的內容復制粘貼到一個在新項目文件夾中。 嘗試部署這個新項目時,我收到了大量關於我的代碼的錯誤和警告,例如:

18:4   error    Expected catch() or return                  promise/catch-or-return

還有更多,即使我的編碼函數以前運行良好。

所以我決定嘗試修復舊項目的錯誤可能是最好的。

有沒有人建議在這種情況下該怎么做或在哪里可以找到這些神秘的 firebase 配置變量? 我無法在網上找到任何解決我的問題的方法。 我真的很感激任何形式的幫助支持,因為我不知道該怎么做,而且我的大學也沒有支持我這樣做......

關於配置變量的錯誤消息要求您更新您的 Firebase CLI,您已經這樣做了。 這很好。 (您可能忽略了關於@google-cloud/functions-emulator 的警告。)

當您創建一個新項目時,您可能在項目創建過程中選擇了使用 ESLint。 提示會說:

您想使用 ESLint 來捕獲可能的錯誤並強制執行樣式嗎?

這是自 3.17.0 版以來 Firebase CLI 中的一項非常新的功能,您之前可能沒有使用 ESLint。

您看到的那些新錯誤是 ESLint 告訴您代碼存在潛在問題。 Firebase 團隊強烈建議您聽取這些警告和錯誤的建議並解決它們,這樣您的代碼就會減少問題。

如果您現在根本無法使用 ESLint,您可以重新創建您的項目,但在提示時選擇使用 ESLint。 或者,您可以通過編輯firebase.json文件並刪除運行 lint 命令的預部署腳本,在當前項目中禁用它。

看起來那里有兩件事:

1) 您可能沒有最新的 firebase 函數,這就是導致配置變量錯誤的原因。 在再次部署之前嘗試在您的函數文件夾中運行以下命令:

npm i --save firebase-functions@0.8.1
npm i --save firebase-admin@5.8.1

2) “預期的 catch() 或返回”是一個 linter 錯誤,這意味着您沒有返回您的承諾鏈。 (這將導致您部署的函數出現超時錯誤)。 所以你應該修改你的代碼看起來更像:

return asynchronousTask().then(function() {
 ....
   return someValue;
});

在某些情況下,您可能想一起認輸,但只想暫時忽略掉毛,直到您可以解決它所遇到的問題。

https://masteringjs.io/tutorials/eslint/ignore#:~:text=Disabling%20ESLint%20With%20a%20Comment&text=If%20you%20put%20%2F*%20eslint,the%20top%20of%20a% 20 文件

使用.eslintignore可以跳過整個文件,這些文件可能還沒有准備好通過 eslint,但您仍然需要部署以進行測試或其他什么。

暫無
暫無

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

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