firebase framework tools
v0.11.6
應用託管為這些框架中開發的Web應用程序提供無配置的構建和部署支持:
此存儲庫保存了適配器的代碼,以支持這些框架。這些適配器在高級別上將特定於框架的配置轉換為輸出捆綁包規範,應用程序託管可以用來配置框架支持。有關更多信息,請參見框架集成。
應用程序託管輸出捆綁包是基於文件的規範,允許不同的框架配置和自定義其應用程序託管部署以增強支持。
任何可以根據應用託管輸出捆綁包生成構建輸出的框架都可以在應用託管上部署。
輸出捆綁包主要由一個bundle.yaml文件組成,該文件位於.apphosting目錄內。此捆綁包。 yaml包含框架在用戶部署其應用程序時可以配置應用程序託管的所有方式。
筆記
App託管在技術上支持所有所有節點應用程序,但是如果沒有輸出捆綁包,將不會啟用自定義框架功能。
輸出捆綁包包含在一個文件中:
.apphosting/bundle.yaml只要該文件存在並遵循模式,應用程序託管就可以正確處理構建。
該模式也可以在源中找到
interface OutputBundle {
version : "v1"
runConfig : RunConfig ;
metadata : Metadata ;
}該version表示當前正在使用哪種輸出捆綁版。當前版本是V1。
runConfig字段配置與託管後端關聯的雲運行服務。
interface RunConfig {
runCommand : string ;
environmentVariables ?: EnvVarConfig [ ] ;
concurrency ?: number ;
cpu ?: number ;
memoryMiB ?: number ;
minInstances ?: number ;
maxInstances ?: number ;
}| 場地 | 類型 | 描述 | 必需的? |
|---|---|---|---|
runCommand | string | 命令啟動服務器(例如node dist/index.js )。假設此命令是從工作區的根目錄運行的。這應該是服務器啟動命令的生產版本。 | y |
environmentVariables | EnvVarConfig[] | 服務器執行環境中存在的環境變量。 | n |
concurrency | number | 每個服務器實例可以接收的最大並發請求數。 | n |
cpu | number | 單個服務器實例中使用的CPU數。 | n |
memoryMiB | number | 服務器實例可用的內存量。 | n |
minInstance | number | 可能在給定時間共存的最小功能實例數量的限制。 | n |
MaxInstance | number | 可能在給定時間共存的最大功能實例數量的限制。 | n |
這些字段中的許多與apphosting.yaml共享。有關其他上下文和默認值,請參見RunConfig參考文檔。
interface EnvVarConfig {
variable : string ;
value : string ;
availability : 'RUNTIME'
}| 場地 | 類型 | 描述 | 必需的? |
|---|---|---|---|
variable | string | 環境變量的名稱 | y |
value | string | 與環境變量相關的價值 | y |
availability | RUNTIME | 變量可用的位置。現在這將永遠是RUNTIME | y |
interface Metadata {
adapterPackageName : string ;
adapterVersion : string ;
framework : string ;
frameworkVersion ?: string ;
}| 場地 | 類型 | 描述 | 必需的? |
|---|---|---|---|
adapterPackageName | string | 適配器的名稱(這應該是NPM軟件包名稱) | y |
adapterVersion | string | 適配器的版本 | y |
framework | string | 支持的框架的名稱 | y |
frameworkVersion | string | 支持該框架的版本 | n |
這是一個示例bundle.yaml文件,將所有這些放在一起:
> cat .apphosting/bundle.yaml
version: v1
runConfig:
runCommand:
- node
- dist/index.js
environmentVariables:
- variable: VAR
value: 8080
availability: RUNTIME
concurrency: 80
cpu: 2
memoryMiB: 512
minInstances: 0
maxInstances: 14
metadata:
adapterNpmPackageName: npm-name
adapterVersion: 12.0.0
frameworkNpmPackageName: framework-name
adapterVersion: 1.0.0
只要您有這種格式的bundle.yaml ,應用程序託管就可以部署任何支持服務器端渲染的框架。