跳到主要内容

初始化项目

blocklet init 命令是一个交互式实用工具,可帮助您在现有目录中为新的 blocklet 创建基本结构。它会生成核心的 blocklet.yml 元数据文件和其他必要的样板文件,将您当前的文件夹转变为一个功能性的 blocklet 项目。

当您想从头开始一个 blocklet 或将现有项目(例如,已经有 package.json 的项目)转换为 blocklet 时,此命令是理想的选择。如果您更喜欢从预构建的模板开始,请参阅 blocklet create 命令。

交互式演练

当您在项目目录中运行 blocklet init 时,CLI 将引导您完成一系列问题以配置您的 blocklet 的元数据。

终端

bash
blocklet init

过程如下所示:

text
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 功能的简短、一句话摘要。
groupblocklet 的类型或类别。可用选项有 dappstaticapigateway
main您的 blocklet 代码的入口点。对于 dapp 类型的 blocklet,这通常是像 index.js 这样的脚本。对于 static 类型的 blocklet,它是包含您的静态资产的目录(例如,.)。

初始化过程

该命令执行几个关键步骤来设置您的项目,包括通过连接到 DID 钱包为您的 blocklet 生成一个唯一的去中心化 ID (DID)。

Initialize Project

生成的文件

成功初始化后,您将在项目中找到以下文件和目录:

  • blocklet.yml:最重要的文件。它包含您的 blocklet 的所有元数据,例如其名称(即其 DID)、标题、描述和版本。 blocklet.yml yaml 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 的默认徽标图像。 默认 Blocklet 徽标
  • 入口点文件:根据您选择的 group
    • 对于 dapp,会创建一个 index.js,其中包含一个简单的 Node.js HTTP 服务器。 index.js javascript 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.htmlindex.html html <!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(如果存在)或目录名称派生的默认值。

终端

bash
blocklet init -y

项目初始化后,您就可以开始构建了。下一步是在本地开发环境中运行您的 blocklet。

下一步:开发模式

了解如何在实时重载的开发服务器中运行您的 blocklet。

了解更多