拓冰建站拓冰建站
首页 / 资讯中心 / 正文

ToolJet CLI 完全指南:用命令行创建、删除与安装 Marketplace 插件

ToolJet CLI 完全指南用命令行创建、删除与安装 Marketplace 插件【免费下载链接】ToolJetOpen-source foundation of ToolJet AI - the enterprise app generation platform for internal tools, dashboards, business applications, workflows and AI agents. Build visually, from a prompt, or from Claude Code, Codex and Cursor over MCP 项目地址: https://gitcode.com/GitHub_Trending/to/ToolJetToolJet CLItooljet/cli是 ToolJet 为开发者提供的官方命令行工具用于在本地工作区中创建、更新和删除 Marketplace 插件是插件开发流程的入口。本文将以 ToolJet 仓库中 docs/docs/tooljetcli.md 为核心结合 cli/ 目录下的真实命令实现源码完整讲解 CLI 的安装、验证、全部命令用法、交互流程及其底层工作原理帮助你快速上手插件开发。注意从 ToolJet CLI 版本 0.0.14 开始数据源datasource插件的创建已被弃用官方将重心转向 Marketplace 插件以提升插件开发体验并与 ToolJet 产品路线图保持一致。当前仓库 cli/package.json 中的版本号即为0.0.14。ToolJet CLI 是什么ToolJet 的扩展能力围绕插件plugin体系展开插件目前主要指连接器connector例如 PostgreSQL、MySQL、Twilio、Stripe 等数据源连接器。开发者可以使用 JavaScript/TypeScript 编写插件将其发布到 ToolJet Marketplace供所有工作区使用。ToolJet CLI 正是为这一流程服务的工具它简化了插件的脚手架生成、删除与依赖管理让开发者不必手工搭建插件目录、编写元数据文件。CLI 本身基于 oclif 框架构建见 cli/package.json 中的oclif配置发布为全局 npm 包提供tooljet可执行命令并要求 Node.js 版本12.0.0。一个关键使用前提所有命令都应在 ToolJet 仓库根目录下执行。CLI 的 README 明确写道 Command should be executed insideTooljetdirectory且create命令源码cli/src/commands/plugin/create.ts会检查marketplace、docs与marketplace/_templates目录是否存在缺失时会报错退出。安装与验证安装 CLI使用 npm 全局安装 ToolJet CLInpm install -g tooljet/cli验证安装安装完成后通过版本号验证是否成功tooljet --version该命令会输出类似tooljet/cli/0.0.14 ...的版本信息README 示例中为tooljet/cli/0.0.13 darwin-x64 node-v14.17.3格式。查看帮助使用--help可查看所有可用命令tooljet --help命令总览命令作用tooljet info返回当前运行环境信息tooljet plugin create PLUGIN_NAME创建新插件tooljet plugin delete PLUGIN_NAME删除插件tooljet plugin install [NPM_MODULE] --plugin value在指定插件内安装 npm 模块其中plugin是一个命令主题topic在 cli/package.json 的 oclif 配置中被描述为 manage plugins options: create, delete and install。tooljet info查看运行环境该命令返回 ToolJet CLI 当前运行所在机器的环境信息tooljet info从源码 cli/src/commands/info.ts 可以看到它输出的具体内容Operating Systemplatform如 darwin/linux、arch如 x64/arm64、versionBinariesnode来自process.versions.node、npm通过执行npm --version获取Relevant packagestooljetCLI 自身包版本读取package.json的version字段在排查环境问题时该命令能快速确认 Node/npm 版本是否满足要求12.0.0。tooljet plugin create创建新插件创建插件是 CLI 最核心的功能tooljet plugin create PLUGIN_NAME其中PLUGIN_NAME是必填参数即插件的唯一标识slug。完整的参数形式为tooljet plugin create name --typedatabase | api | cloud-storage [--build]交互流程与参数说明根据 cli/src/commands/plugin/create.ts 的实现执行流程如下校验插件名PLUGIN_NAME不能是纯数字否则报错Plugin name can not be a number并退出。输入显示名称CLI 会提示Enter plugin display name该名称同样不能是纯数字。选择插件类型若未通过--type指定CLI 会以列表形式让你选择database、api或cloud-storage三者之一。标志Flag说明--typedatabase\|api\|cloud-storage指定插件类型可选值为 database、api、cloud-storage-b, --build创建完成后自动执行插件构建npm run build --workspaces目录存在性检查确认当前目录是 ToolJet 仓库根目录需存在marketplace、docs、marketplace/_templates。ID 唯一性检查读取并解析 server/src/assets/marketplace/plugins.jsonMarketplace 插件注册表若已有插件的id与PLUGIN_NAME转为小写相同报错Plugin id already exists。生成插件骨架通过 hygen 模板引擎使用 marketplace/_templates/plugin/new/ 下的模板manifest.ejs.t、operations.ejs.t、index.ejs.t、packagejson.ejs.t、icon.ejs.t、types.ejs.t、tests.ejs.t等生成插件目录。注册到 plugins.json将新插件对象{ name, description, version: 1.0.0, id, author: Tooljet, timestamp }追加写入 server/src/assets/marketplace/plugins.json。展示目录树命令结束前打印生成的文件树结构。生成的插件结构一个典型的 Marketplace 插件目录结构如下github/ package.json lib/ icon.svg index.ts operations.json manifest.json各文件职责manifest.json插件元数据与连接表单 schema包含插件名称、类型、认证方式与连接选项。从模板 marketplace/_templates/plugin/new/manifest.ejs.t 可以看到它定义了title、type、source含exposedVariablesisLoading、data、rawData、defaults、properties、required等结构。operations.json插件支持的所有操作operation及其参数的 schema供查询编辑器生成查询 UI。index.ts实现插件的QueryService负责处理查询执行、连接测试、缓存等。icon.svg插件图标。package.json由 CLI 自动生成。manifest.json与operations.json采用相似 schema二者分别驱动连接表单组件与查询管理器组件动态生成 UI文本输入、下拉框、复选框等。:::tipplugins.json是 ToolJet 服务启动时加载插件注册表的依据切勿手动编辑——它由 ToolJet CLI 自动维护手动修改可能导致插件无法正常工作。 :::完整创建示例GitHub 插件若已完成 Marketplace 环境搭建见 Marketplace 环境搭建指南可执行# 创建新插件 tooljet plugin create github按提示输入插件名称、选择插件类型本例为api并确认创建 Marketplace 插件。若插件托管在 GitHub可在提示时提供仓库 URL否则留空即可。更完整的逐步骤开发流程manifest.json 定义、operations.json 定义、QueryService 实现、错误处理等请参考 创建 Marketplace 插件详细指南。tooljet plugin delete删除插件tooljet plugin delete PLUGIN_NAME删除前CLI 会提示开发者确认待删除插件是否为 Marketplace 插件确认后才继续执行。从源码 cli/src/commands/plugin/delete.ts 看删除逻辑细节如下类型确认若未传--marketplace标志会弹出确认问题 Is this a marketplace plugin?若回答否则按旧式plugins/packages/name路径处理数据源插件目录。路径计算Marketplace 插件删除marketplace/plugins/name目录并从 server/src/assets/marketplace/plugins.json 中移除对应记录非 Marketplace 插件删除plugins/packages/name目录及其文档docs/docs/data-sources/name.md并执行npx lerna link convert。二次确认再次弹窗 Do you want to proceed with deleting the plugin [name] from your local machine?选择否时输出Aborted by user中止。可选构建-b, --build标志可在删除后重新构建插件工作区。tooljet plugin delete name [--build]tooljet plugin install为插件安装 npm 模块tooljet plugin install [NPM_MODULE] --plugin valueNPM_MODULE必填要安装的 npm 模块名--plugin value必填标志指定目标插件名。源码 cli/src/commands/plugin/install.ts 的实现会拼接plugins/packages/plugin路径先校验插件目录存在否则报错Plugin not found, make sure that you are running this command in Tooljet directory然后在该目录内执行npm i npm_module最后输出Package: module added to plugin。在 npm workspaces 环境下也可以手动使用npm i npm-package-name --workspaceplugin-name-in-package-json将包安装到指定插件工作区例如npm i octokit --workspacetooljet-marketplace/github效果类似。从源码理解 CLI 的实现原理框架与入口CLI 基于 oclif 构建bin入口为 cli/bin/run见 cli/package.json命令目录约定为dist/commands构建脚本为tsc -b。命令组织info为顶层命令create/delete/install归入plugintopic与命令命名空间tooljet plugin xxx对应。插件生成机制create使用 hygen 模板引擎模板位于 marketplace/_templates/plugin/new/模板文件名即目标文件如manifest.ejs.t→lib/manifest.json并通过--name、--type、--display_name、--plugins_path参数注入生成内容。注册表机制create与delete都会读写 server/src/assets/marketplace/plugins.json该文件是服务端加载插件的依据因此保持其一致性是插件能否被 ToolJet 正确识别的关键。交互式输入命令通过inquirer与CliUx.ux.prompt实现交互类型选择、名称输入、删除确认因此在终端中运行时会等待输入。发布插件插件开发完成后通过向 ToolJet 官方仓库提交 Pull Request 即可申请发布ToolJet 团队会审查 PR通过后插件将随下一版本发布并上架 Marketplace。发布前的完整开发与测试细节请结合 创建 Marketplace 插件详细指南 与 Marketplace 环境搭建指南 阅读二者与本文共同构成 ToolJet 插件开发的完整知识链路。【免费下载链接】ToolJetOpen-source foundation of ToolJet AI - the enterprise app generation platform for internal tools, dashboards, business applications, workflows and AI agents. Build visually, from a prompt, or from Claude Code, Codex and Cursor over MCP 项目地址: https://gitcode.com/GitHub_Trending/to/ToolJet创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门