tcb-toolkit-cli
v1.0.3
Published
Tencent Cloud Base(TCB) node.js CLI.
Downloads
2
Maintainers
Readme
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-guangzhou
orguangzhou
项目的 Typescript 转译环境,基于 @swc/cli
,配置文件优先级 .swcrc > tsconfig.json
。
项目内执行 pnpm dev
启动即可开始工作(启动 @swc/cli
监听 functions 目录下文件修改)。
依赖库说明
新创建的项目,默认整合如下依赖包(devDependencies
):
@types/node
typescript
,ts-node
@swc/cli
,@swc/core
eslint
,@typescript-eslint/parser
,@typescript-eslint/eslint-plugin
prettier
mocha
,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 /name
fn-
前缀,普通的云函数,main 函数引入类型ev: ScfCallEvent<FunctionParams>
可通过 tcb-toolkit-cli aggr
重新更新写入到根项目的 cloudbaserc.json
。
tcb-toolkit-cli aggr
收集 TCB 项目 functions 目录下的所有云函数的 package.json
的 scf
字段配置,并将结果导出更新到 cloudbaserc.json
文件中去。