npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

tcb-toolkit-cli

v1.0.3

Published

Tencent Cloud Base(TCB) node.js CLI.

Downloads

2

Readme

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 文件中去。