tcb-toolkit-cli v1.0.3
tcb-toolkit-cli
腾讯云 cloudbase(tcb)工具箱命令行指令集。
主要用于快速创建 tcb 项目,创建云函数子项目,自动同步云函数配置等。
目前已经比较完善,通过指定 envId 和 region 创建项目,开箱即用,可直接进入开发,并迅速发布上线。
为何要额外再做一个项目?
tcb-toolkit 旨在为实际运行时的云函数提供必要的、有限的辅助和帮助( minified 仅 3kb ,仅依赖 @cloudbase/node-sdk ),尽可能控制本体容量,并充分利用 Typescript 的类型宣言、泛型、类型推断,来活化、规范化云函数的开发。
tcb-toolkit-cli 包含大量工具、辅助的库,这些仅作为项目开发时候需要,并不是云函数运行时必要。
tcb-toolkit-cli tcb
新建 tcb 项目
npx tcb-toolkit-cli tcb <name> -e envId -r region参数说明:
-p|--package-manager包管理器,默认pnpm-i|--install是否立刻安装依赖包,默认true-d|--dir指定工作目录,如果为绝对路径,则以绝对路径为工作目录,如果为相对路径,则在当前路径下的目录,默认为undeinfed-e|--envId指定 TCB envId,默认为undefined,建议添加-r|--region指定 TCB 分区,默认为undefined,建议添加,可取值gz|bj|sh|nj|cd|cq,亦可使用全称ap-guangzhouorguangzhou
项目的 Typescript 转译环境,基于 @swc/cli ,配置文件优先级 .swcrc > tsconfig.json。
项目内执行 pnpm dev 启动即可开始工作(启动 @swc/cli 监听 functions 目录下文件修改)。
依赖库说明
新创建的项目,默认整合如下依赖包(devDependencies):
@types/nodetypescript,ts-node@swc/cli,@swc/coreeslint,@typescript-eslint/parser,@typescript-eslint/eslint-pluginprettiermocha,chai
默认未启用 helper 模式(tslib or @swc/helpers),如需使用,请自行在项目中安装使用。
cloudbaserc.json 说明
新建 tcb 项目时,会默认创建一个 cloudbaserc.json 作为占位,请勿直接手动修改此文件,该文件仅用于最终发布。
有效的 cloudbase 配置分布在以下文件中:
- 项目根目录的
package.json文件中的cloudbaseConfig和scf字段cloudbaseConfig字段,对应cloudbaserc.json根节点配置scf字段,为该项目内的云函数的公共配置,在此目录下创建 scf 项目都会读取此配置。
- 云函数目录的
package.json文件中的scf字段scf字段,对应cloudbaserc.json的functions配置
@cloudbase/cli 已使用了
package.json的cloudbase字段,即如果定义此字段,将忽略cloudbaserc.json的配置。
tcb-toolkit-cli scf
创建云函数子项目,该指令要求在一个 tcb 的项目内运行,即起码要求能读取到该目录下的 package.json 文件。
npx tcb-toolkit-cli scf <name>新建项目自带两个依赖:
注意事项:
- 云函数所需配置可通过云函数项目下的
package.json的scf字段进行配置。 - 每次新建项目时,会自动更新一次
cloudbaserc.json。 - 每次新建项目,将自动在根目录
package.json的scripts字段添加deploy:project-name的指令。 - 云函数命名约定:
api-前缀,表示为将为其挂载到 http 服务上,main 函数引入类型ev: ScfReqEvent,api-name自动转化为挂载点--path /namefn-前缀,普通的云函数,main 函数引入类型ev: ScfCallEvent<FunctionParams>
可通过 tcb-toolkit-cli aggr 重新更新写入到根项目的 cloudbaserc.json。
tcb-toolkit-cli aggr
收集 TCB 项目 functions 目录下的所有云函数的 package.json 的 scf 字段配置,并将结果导出更新到 cloudbaserc.json 文件中去。