@airtable/blocks-cli

中文文档
3.0.3发布于 2026/04/30UNLICENSEDTypeScriptCommonJS近 30 天下载 2.1万

Airtable 块开发的官方命令行工具

中文使用文档
文档目录13 节
  1. block add-remote BLOCKIDENTIFIER REMOTENAME
  2. block help [COMMAND]
  3. block init BLOCKIDENTIFIER BLOCKDIRPATH
  4. block list-remotes
  5. block release
  6. block remove-remote REMOTENAME
  7. block run
  8. block set-api-key [APIKEY]
  9. block submit
  10. CSS 支助
  11. 使用其他目录中的代码
  12. 自定义网络包配置
  13. 使用自定义捆绑器

@ airtable/ blocks-cli (英语)

Airtable Blocks开发的命令行工具.

安装

要安装或更新 block cli,运行:

npm install --global @airtable/blocks-cli

使用量

$ npm install -g @airtable/blocks-cli
$ block COMMAND
running command...
$ block (-v|--version|version)
@airtable/blocks-cli/3.0.3 darwin-arm64 node-v22.14.0
$ block --help [COMMAND]
USAGE
  $ block COMMAND
...

图标

block add-remote BLOCKIDENTIFIER REMOTENAME

[贝塔] 添加一个新的远程配置

USAGE
  $ block add-remote BLOCKIDENTIFIER REMOTENAME

OPTIONS
  -h, --help  show CLI help

EXAMPLE
  $ block add-remote app12345678/blk12345678 new-remote

block help [COMMAND]

显示块的帮助

USAGE
  $ block help [COMMAND]

ARGUMENTS
  COMMAND  command to show help for

OPTIONS
  --all  see all commands in CLI

参见代码 : @oclif/plugin-帮助

block init BLOCKIDENTIFIER BLOCKDIRPATH

启动一个空中扩展项目

USAGE
  $ block init BLOCKIDENTIFIER BLOCKDIRPATH

OPTIONS
  -h, --help           show CLI help
  --template=template  [default: https://github.com/Airtable/apps-hello-world]

EXAMPLE
  $ block init app12345678/blk12345678 hello-world-extension --template https://github.com/Airtable/apps-hello-world

block list-remotes

[贝塔] 列出远程配置

USAGE
  $ block list-remotes

OPTIONS
  -h, --help  show CLI help

EXAMPLE
  $ block list-remotes

block release

将一个建筑放入一个气垫基地

USAGE
  $ block release

OPTIONS
  -h, --help       show CLI help
  --remote=remote  [Beta] Configure which remote to use

EXAMPLE
  $ block release

block remove-remote REMOTENAME

[贝塔] 删除远程配置

USAGE
  $ block remove-remote REMOTENAME

OPTIONS
  -h, --help  show CLI help

EXAMPLE
  $ block remove-remote old-remote

block run

本地运行扩展

USAGE
  $ block run

OPTIONS
  -h, --help       show CLI help
  --port=port      [default: 9000] HTTPS port the server listens on. The server will listen for HTTP on PORT + 1.
  --remote=remote  [Beta] Configure which remote to use

EXAMPLE
  $ block run

block set-api-key [APIKEY]

设置 Airtable 账户的个人访问符( 带有块: 管理范围) 上传到

USAGE
  $ block set-api-key [APIKEY]

OPTIONS
  -h, --help             show CLI help
  --location=(user|app)  [default: user]

EXAMPLE
  $ block set-api-key
  $ block set-api-key TOKEN
  $ block set-api-key --location app TOKEN

block submit

提交延期供审查,以便列入空中市场

USAGE
  $ block submit

OPTIONS
  -h, --help       show CLI help
  --remote=remote  Configure which remote to use

EXAMPLE
  $ block submit

V2 中的新特性

CSS 支助

默认情况下,新的 CLI 支持您的扩展名中的 SS 文件 。 默认的 Webpack 捆绑器是 配置了 cs-loader 和样式-loader 。 这意味着您可以导入一个 Css 文件到您的 扩展名。 示例

// styles.css
.red {
  color: red;
}
import {initializeBlock} from '@airtable/blocks/ui';
import React from 'react';
import './styles.css'

function MyExtension() {
    return <div className="red">Hello world</div>;
}

initializeBlock(() => <MyExtension />);

使用其他目录中的代码

新的 CLI 允许在源代码之外使用“ 姐妹目录” 来进行代码共享 要捆绑的目录 。 其他目录可以包括基于链接或文件的npm导入.

这里可以找到更多细节和实例.

自定义网络包配置

默认情况下,CLI会使用网页包来捆绑您的代码. 在框外,它支持使用平面 JavaScript 或 TypeScript 和通过 CSS 文件的样式. 如果您想要自定义网络包配置 另外,你可以安装 @airtable/blocks-webpack-bundler 软件包。 为了更多 关于安装此软件包和自定义 Webpack 配置的信息,请参见 README @airtable/blocks-webpack-bundler 软件包在 软件包/网包-捆绑器/README.md。 。 。 .

使用自定义捆绑器

如果自定义上面描述的网页包配置不能解决您的使用大小写,它也是 可完全用自定义执行替换捆绑器。 这需要 相当大的工作量.

自定义捆绑器允许用户替换 CLI 的内置捆绑功能会转弯 扩展源代码为可公布文物. 您的自定义捆绑器输出必须符合 Airtable平台的预期格式,调用会议,以及文件结构.

不同于其他捆绑系统,它们通过组合多个单一目的而允许配置 插件( 或仅取代捆绑管道的一部分), 此 CLI 曝光一个更简单的捆绑器 扩展 API ,它期望一个单一的,完整的替换捆绑功能.

要使用自定义捆绑器 :

  1. 将您的捆绑器保存为JavaScript文件(即索引.js). 捆绑器必须是通用JS模块. 若为 以 TypeScript 编写的捆绑器, 您必须使用已转录的版本作为条目文件 .

  2. 然后,更改块.json “ bundler.module”选项,以指向您新的 bunder 条目文件; 即:

// block.json
{
    “bundler”: {
        “module”: “./bundler/index.js”
    }
}
  1. 一旦更改,请重新启动您的dev服务器(如果运行在dev服务器上).

捆绑者需要执行下列API:

class Bundler {
    async bundleAsync(options: ReleaseBundleOptions): Promise<void> {
        // implement release build
    }

    async findDependenciesAsync(options: SubmitFindDependenciesOptions): Promise<{files: Array<string>}> {
        // used in `block submit`
    }

    async startDevServerAsync(options: RunDevServerOptions & RunDevServerMethods): Promise<void> {
        // implement run development build
    }

    async teardownAsync(): Promise<void> {
        // implement any work needed to gracefully
        // close bundler process
    }
}

export default function() {
    return new Bundler();
}

For more details about the bundler API, see src/bundler/bundler.ts

静态资产仍没有违约支持,但现在可以在自己的捆绑器中互换 支持这个.

版本与发布记录

@airtable/blocks-cli 共发布 103 个版本,首次发布于 2019/05/25;过去 12 个月发布了 4 个版本。

版本发布日期距今
3.0.3latest2026/04/306 个月前
2.0.12v2-latest2026/04/306 个月前
3.0.22026/04/296 个月前
2.0.112026/04/296 个月前
3.0.12025/09/181.1 年前
3.0.02025/09/181.1 年前

其他发布通道:beta → 2.0.0-beta.7,next → 2.0.8-rc.1,v2-latest → 2.0.12。

关于 @airtable/blocks-cli 的常见问题

@airtable/blocks-cli 是什么?

Airtable 块开发的官方命令行工具

如何安装 @airtable/blocks-cli?

在项目目录运行 npm install @airtable/blocks-cli,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 block,可以用 npx block 直接运行。

@airtable/blocks-cli 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@airtable/blocks-cli 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@airtable/blocks-cli 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=10.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@airtable/blocks-cli 可以商用吗?

@airtable/blocks-cli 使用 UNLICENSED 许可。作者声明为 UNLICENSED,即不授予公开使用许可(与公共领域的 Unlicense 不同)。使用前需获得作者授权。以上为概括,不构成法律意见,请以许可原文为准。

@airtable/blocks-cli 的下载量有多少?

根据 npm 官方下载统计,@airtable/blocks-cli 在 2026/10/05 – 2026/11/03 这 30 天内被下载 20,734 次,日均约 691 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@airtable/blocks-cli 还在维护吗?

最新版本 3.0.3 发布于 2026/04/30(6 个月前);至今共发布 103 个版本,其中过去 12 个月发布了 4 个;首次发布于 2019/05/25。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。