Blocklet转换器 blocklet-converter

Blocklet转换器是一款自动化工具,专门用于将静态网页和Next.js应用程序快速转换为ArcBlock区块链平台的blocklet组件。该工具通过分析项目结构、自动生成配置文件、验证配置完整性,帮助开发者简化Web3应用部署流程,支持DID身份验证,实现一键式项目迁移和区块链化改造。关键词:Blocklet转换,ArcBlock,Next.js部署,静态网页区块链化,DID身份验证,Web3开发工具,自动化配置生成。

DApp开发 0 次安装 0 次浏览 更新于 3/2/2026

name: blocklet-converter description: 使用提供的DID将静态网页或Next.js项目转换为ArcBlock blocklet。分析项目结构,生成配置文件并验证设置。需要blocklet DID作为参数。

Blocklet转换器

将静态网页项目和Next.js应用程序转换为具有正确配置和验证的ArcBlock blocklet。

参数

did (必需): 预生成的blocklet DID (格式: z8ia...)

示例: "使用DID z8ia4e5vAeDsQEE2P26bQqz9oWR1Lxg9qUMaV将此项目转换为blocklet"

如果缺失或无效,立即退出并显示错误信息: “需要Blocklet DID参数。”

工作流程

1. 项目分析

跳过目录: node_modules/, .pnpm/, .yarn/, .cache/, .turbo/, bower_components/

验证Web应用程序是否存在

检查以下任意一项:

  • 包含web相关依赖项的package.json
  • 根目录、public/src/或常见位置中的index.html
  • Web框架配置 (vite.config.*, webpack.config.*, next.config.*等)

如果未找到 → 退出并显示错误信息: “未检测到Web应用程序。”

检测项目类型

检查package.json依赖项:

  • Next.js: 依赖项中包含nextNext.js项目
  • 后端框架: express、koa、fastify、nest等 → 退出并显示错误: “仅支持静态网页和next.js项目。”
  • 其他情况静态网页应用

提取并发出元数据 (早期)

确认项目类型后立即package.json提取元数据:

  • title: 适合公开显示的人类友好项目名称 (例如: my-cool-appMy Cool App)
  • description: 面向最终用户的清晰、非技术性描述。如果package.json描述过于技术性,则重写为用户友好的描述。

使用以下协议发出,然后继续工作流程:

<<<BLOCKLET_PROJECT>>>
{"title": "...", "description": "..."}
<<<END_BLOCKLET_PROJECT>>>

构建 (如果存在构建脚本)

bun install && bun run build

如果任一失败 → 退出并显示错误输出。

定位输出目录

对于Next.js项目: 输出目录始终为.next — 跳过检测。

对于静态网页应用: 在以下位置查找index.html: dist/build/out/public/./,或其他常见位置。如果未找到 → 退出并显示错误信息: “未找到index.html入口点。”

确认输出目录

在继续之前验证输出目录是否存在并包含预期文件。

2. 资产准备

  • README.md: 如果缺失,从{baseDir}/templates/README-template.md生成
  • logo.png: 如果缺失,从{baseDir}/assets/default-blocklet-logo.png复制
  • index.js (仅Next.js): 将{baseDir}/assets/nextjs-entry.txt复制到项目根目录作为index.js

3. 生成blocklet.yml

对于Next.js项目: 使用{baseDir}/templates/nextjs-blocklet.yml中的模板

对于静态网页应用: 使用{baseDir}/templates/static-blocklet.yml中的模板

填充内容:

  • didname: 使用提供的DID
  • title: 人类可读的项目名称
  • description: 来自package.json

4. 验证

blocklet meta

对于Next.js项目:

blocklet bundle --simple --create-release --external="*"

对于静态网页应用:

blocklet bundle --create-release

修复任何错误并重试。

5. 最终确定

完成后不要输出任何摘要或回顾。 成功验证后静默结束。工具输出已为用户提供了足够的反馈。

错误参考

查看{baseDir}/errors.md了解所有错误条件和建议。

支持文件

  • assets/default-blocklet-logo.png - 默认徽标
  • assets/nextjs-entry.txt - Next.js入口点示例
  • templates/static-blocklet.yml - 静态网页应用配置模板
  • templates/nextjs-blocklet.yml - Next.js配置模板
  • templates/README-template.md - README模板
  • examples.md - 工作流程示例
  • errors.md - 错误参考

{baseDir}解析为技能的安装目录。

输出协议

此技能发出结构化数据,调用者可以编程方式解析。

项目元数据事件

项目验证成功后立即发出 (构建前):

<<<BLOCKLET_PROJECT>>>
{"title": "...", "description": "..."}
<<<END_BLOCKLET_PROJECT>>>
字段 类型 描述
title 字符串 用于公开显示的人类友好项目名称
description 字符串 面向最终用户的非技术性描述