tcb-toolkit-cli
TypeScript icon, indicating that this package has built-in type declarations

1.0.3 • Public • Published

tcb-toolkit-cli

gitee-repo version dw

腾讯云 cloudbase(tcb)工具箱命令行指令集。

主要用于快速创建 tcb 项目,创建云函数子项目,自动同步云函数配置等。

目前已经比较完善,通过指定 envIdregion 创建项目,开箱即用,可直接进入开发,并迅速发布上线。

为何要额外再做一个项目?

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 or guangzhou

项目的 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 文件中的 cloudbaseConfigscf 字段
    • cloudbaseConfig 字段,对应 cloudbaserc.json 根节点配置
    • scf 字段,为该项目内的云函数的公共配置,在此目录下创建 scf 项目都会读取此配置。
  • 云函数目录的 package.json 文件中的 scf 字段
    • scf 字段,对应 cloudbaserc.jsonfunctions 配置

@cloudbase/cli 已使用了 package.jsoncloudbase 字段,即如果定义此字段,将忽略 cloudbaserc.json 的配置。

tcb-toolkit-cli scf

创建云函数子项目,该指令要求在一个 tcb 的项目内运行,即起码要求能读取到该目录下的 package.json 文件。

npx tcb-toolkit-cli scf <name>

新建项目自带两个依赖:

注意事项:

  • 云函数所需配置可通过云函数项目下的 package.jsonscf 字段进行配置。
  • 每次新建项目时,会自动更新一次 cloudbaserc.json
  • 每次新建项目,将自动在根目录 package.jsonscripts 字段添加 deploy:project-name 的指令。
  • 云函数命名约定:
    • api- 前缀,表示为将为其挂载到 http 服务上,main 函数引入类型 ev: ScfReqEventapi-name 自动转化为挂载点 --path /name
    • fn- 前缀,普通的云函数,main 函数引入类型 ev: ScfCallEvent<FunctionParams>

可通过 tcb-toolkit-cli aggr 重新更新写入到根项目的 cloudbaserc.json

tcb-toolkit-cli aggr

收集 TCB 项目 functions 目录下的所有云函数的 package.jsonscf 字段配置,并将结果导出更新到 cloudbaserc.json 文件中去。

Package Sidebar

Install

npm i tcb-toolkit-cli

Weekly Downloads

0

Version

1.0.3

License

MIT

Unpacked Size

49.4 kB

Total Files

29

Last publish

Collaborators

  • janpoem