blocklet init 命令是一个交互式实用工具,可帮助您在现有目录中为新的 blocklet 创建基本结构。它会生成核心的 blocklet.yml 元数据文件和其他必要的样板文件,将您当前的文件夹转变为一个功能性的 blocklet 项目。
当您想从头开始一个 blocklet 或将现有项目(例如,已经有 package.json 的项目)转换为 blocklet 时,此命令是理想的选择。如果您更喜欢从预构建的模板开始,请参阅 blocklet create 命令。
交互式演练
当您在项目目录中运行 blocklet init 时,CLI 将引导您完成一系列问题以配置您的 blocklet 的元数据。
终端
blocklet init过程如下所示:
This utility will walk you through create such files and folders(if not exists):
- blocklet.yml
- blocklet.md
- screenshots/
It only covers common items, if you want to check all items, please visit:
https://github.com/ArcBlock/blocklets#keyinfo-blockletjson
Press ^C to quit.
? blocklet title: (my-blocklet) my-first-blocklet
? Please write concise description: A new Blocklet project.
? What's the group of the blocklet? dapp
? What's the entry point of the blocklet? (index.js)
Is this OK: (Y/n) Y
Meta file .../my-blocklet/blocklet.yml was created
Doc file .../my-blocklet/blocklet.md was created
Screenshots dir .../my-blocklet/screenshots/ was created
.../my-blocklet/logo.png was created
.../my-blocklet/index.js was created提示说明
| 提示 | 说明 |
|---|---|
title | 您的 blocklet 的人类可读名称。这用于显示目的。默认为当前目录的名称。 |
description | 关于您的 blocklet 功能的简短、一句话摘要。 |
group | blocklet 的类型或类别。可用选项有 dapp、static、api 和 gateway。 |
main | 您的 blocklet 代码的入口点。对于 dapp 类型的 blocklet,这通常是像 index.js 这样的脚本。对于 static 类型的 blocklet,它是包含您的静态资产的目录(例如,.)。 |
初始化过程
该命令执行几个关键步骤来设置您的项目,包括通过连接到 DID 钱包为您的 blocklet 生成一个唯一的去中心化 ID (DID)。

生成的文件
成功初始化后,您将在项目中找到以下文件和目录:
blocklet.yml:最重要的文件。它包含您的 blocklet 的所有元数据,例如其名称(即其 DID)、标题、描述和版本。 blocklet.ymlyaml name: 'z8iZz5de8e9a6f8f2b3c1d9e2f7g2h1i8j3k4l5m' version: '0.1.0' title: 'my-first-blocklet' description: 'A new Blocklet project.' group: 'dapp' main: 'index.js' author: 'Your Name <your.email@example.com>' specVersion: '1.16.0' did: 'z8iZz5de8e9a6f8f2b3c1d9e2f7g2h1i8j3k4l5m' logo: 'logo.png' scripts: dev: 'node index.js'blocklet.md:一个占位 Markdown 文件,用于您的 blocklet 的详细文档和描述,将显示在 Blocklet Store 中。screenshots/:一个空目录,您可以在其中放置 blocklet 的屏幕截图,以便在 blocklet store 中显示。logo.png:您的 blocklet 的默认徽标图像。
- 入口点文件:根据您选择的
group: - 对于
dapp,会创建一个index.js,其中包含一个简单的 Node.js HTTP 服务器。 index.jsjavascript const http = require('http'); const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello Blocklet\n'); }); const port = process.env.BLOCKLET_PORT || 3000; server.listen(port, () => { // eslint-disable-next-line no-console console.log(`Server running at http://127.0.0.1:${3000}/`); }); - 对于
static,会创建一个index.html。 index.htmlhtml <!DOCTYPE html> <html> <head> <title>Hello Blocklet</title> </head> <body> <h1>Hello Blocklet</h1> </body> </html>
- 对于
.gitignore:会添加一个基本的.gitignore文件,以防止常见的构建产物和依赖项被提交到版本控制中。
命令选项
您可以使用以下标志修改 blocklet init 的行为。
| 选项 | 别名 | 说明 |
|---|---|---|
--yes | -y | 跳过交互式提示并接受所有默认值。这对于编写脚本很有用。 |
--force | -f | --yes 的别名。 |
--did <did> | 提供一个要使用的特定 Blocklet DID,跳过自动生成步骤。 |
示例:非交互式初始化
要快速初始化项目而不回答提示,请使用 -y 标志。该命令将使用从您的 package.json(如果存在)或目录名称派生的默认值。
终端
blocklet init -y项目初始化后,您就可以开始构建了。下一步是在本地开发环境中运行您的 blocklet。