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 ,应用程序托管就可以部署任何支持服务器端渲染的框架。