簡體   English   中英

如果沒有完全部署,為什么Angular Firebase Cloud Functions Emulator無法更新功能?

[英]Why won't Angular Firebase Cloud Functions Emulator update functions without a full deploy?

我正在嘗試設置開發環境。 我在Windows 10計算機上使用Angular 5 TypeScript,VisualStudio IDE。 我正在使用Firebase托管,Firestore和Firebase函數。 我在TypeScript(index.ts)文件的“ functions”文件夾中編寫函數。 遵循在本地測試Firebase功能的說明時( https://firebase.google.com/docs/functions/local-emulator )。 我可以通過“ firebase serve”和“功能外殼”在本地服務器上本地運行這些功能,如鏈接中所述。 但是,當我對index.ts進行更改時,再次ping時該函數不會更新。 僅在執行完整的“ firebase部署功能”命令時才會更新。 這違反了具有本地功能仿真器的目的。 這樣做的目的是避免每次更改某項功能時都必須部署功能。 也許與firebase.json有關? 我將其與“ ng version”的輸出一起復制到了下面。

Angular CLI: 1.6.8
Node: 6.11.5
OS: win32 x64
Angular: 5.2.4
... cdk, common, compiler, compiler-cli, core, forms, http
... language-service, material, platform-browser
... platform-browser-dynamic, router

@angular/animations: 5.2.5
@angular/cli: 1.6.8
@angular-devkit/build-optimizer: 0.0.42
@angular-devkit/core: 0.0.29
@angular-devkit/schematics: 0.0.52
@ngtools/json-schema: 1.1.0
@ngtools/webpack: 1.9.8
@schematics/angular: 0.1.17
typescript: 2.5.3
webpack: 3.10.0


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

TypeScript具有將代碼導入JavaScript(ES6)所需的轉換階段,Cloud Functions可以理解。 您必須使該轉換階段發生,以便仿真器提取更改。

使用Firebase CLI為新的TypeScript項目創建的package.json,您可以運行npm run build進行編譯而不進行部署。 或者,您可以使用tsc --watch使進程自動將更改轉譯為TypeScript。

聽起來您的package.json可能很舊,並且不包含用於處理TypeScript的最新npm腳本。 如果您沒有可用的npm run build建議使用最新版本的Firebase CLI重新創建它。

另外,我已經寫了一個關於此的詳細博客- 您可以在此處閱讀

暫無
暫無

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

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