创建 Blocklet
Blocklet 类型#
根据常用的开发模式,大致可以将所有的应用划分为三类:静态站点项目、后端 API 服务项目、全栈项目。
每一种应用有一些什么特征呢?
静态站点项目#
静态站点项目通常只会包含一些前端项目的文件,其项目本身可以通过一个静态资源服务器来进行部署。常见的属于这个类型的应用有 React、Vue、Svelte、Solidjs 等。
create-blocklet 是 Blocklet 平台官方维护的一个命令行工具,主要用于快速的创建一个 Blocklet 应用。
在 create-blocklet 中,提供了以下静态站点项目模板的快速创建功能:
- [static] html
- [static] react
- [static] vue3 + vite
- [static] vue2 + @vue/cli
- [static] solidjs
- [static] svelte
- [static] blocklet pages
- [static] doc site
后端 API 服务项目#
后端 API 服务项目通常是用于作为提供 API 调用的服务而存在,一般常用于为静态站点项目、手机 APP 客户端等提供数据之用。
在 Create Blocklet 中,提供了以下后端 API 服务项目模板的快速创建功能:
- [api] express.js
全栈项目#
全栈项目集静态站点项目和后端 API 服务项目之和,将两者融合在一起,在一个项目中提供了更完整的服务。通常情况下,当你需要一个功能完备的站点,那么选择全栈项目就没错了。
在 Create Blocklet 中,提供了以下全栈项目模板的快速创建功能:
- [dapp] react + express.js
- [dapp] vue3 + express.js
- [dapp] vue2 + express.js
- [dapp] solidjs + express.js
- [dapp] svelte + express.js
- [dapp] react + gun.js + express.js
- [dapp] next.js
使用 create-blocklet 工具创建一个 Blocklet 项目#
通过 blocklet create 命令来可以调用以上工具来快速创建一个 Blocklet 应用(前提在本机中有安装 blocklet-server 环境)

输入项目名称后,即可进入选择模板的阶段,在这个页面中可以输入关键字进行搜索。
使用空格键选中需要创建的模板(可以选择多个模板,会自动组合成一个 monorepo)

接下来选择 [static] react 作为示例

程序会自动创建好对应模板的目录结构,根据其提示的信息进行依赖的安装即可进入项目的开发模式。
想要了解更多有关 create-blocklet 的信息,可以参考 create-blocklet
在已有项目的基础上创建一个 Blocklet 项目#
以上的内容已经介绍了从 0 开始创建一个 Blocklet 的过程,Create Blocklet 可以帮我们免去复杂的创建流程。
然后有时候我们还面临着,项目已经处于开发过程中,需要将一个项目转变为 Blocklet,以下内容将会介绍如何将一个已经开发好(或开发中)的项目转变为 Blocklet 项目
依赖准备#
在本机中有安装 blocklet-server 环境
生成 blocklet.yml 文件#
进入项目的目录中,在终端执行 blocklet init 命令,依次输入项目名称、项目描述

在选择项目类型的步骤中,如果当前项目是一个“静态站点项目”,则选择 static;如果当前项目是一个“后端 API 服务项目”或“全栈项目”,则选择 dapp

接着根据后续的步骤,依次确认即可生成项目对应的 blocklet.yml 文件
配置脚本命令#
在上面的步骤中,我们已经得到了一个可用于 Blocklet Server 的 blocklet.yml 文件,接下来我们配置一些脚本命令使我们可以更快捷的使用 Blocklet Server 进行开发及打包部署。
- 配置
blocklet.yml中的开发命令
启动一个 Blocklet 应用的开发环境需要通过 blocklet dev 命令来实现,而 blocklet dev 命令依赖于 blocklet.yml 中的配置。
需要在 blocklet.yml 中增加配置如下:
scripts:
dev: npm run start为了使用更熟悉的方式调用开发命令,也可以在 package.json 文件中的 scripts 增加 "dev": "blocklet dev" 命令,之后便可以使用 npm run dev 来进入 Blocklet 应用的开发环境
想要了解更多有关 blocklet dev 的信息,可以参考 blocklet dev
- 配置打包命令
我们可以通过 blocklet bundle 命令进行 Blocklet 应用的打包,在执行命令前需要使用项目原有的命令进行一次打包。
假设项目原有的打包命令为 npm run build,则我们可以在 package.json 文件中的 scripts 增加 "bundle": "npm run build && blocklet bundle --create-release" 命令,以后我们便可以通过 npm run bundle 来快速进行 Blocklet 应用的打包
想要了解更多有关 blocklet bundle 的信息,可以参考 blocklet bundle
- 配置部署命令
在 package.json 文件中的 scripts 增加 "deploy": "npm run bundle && blocklet deploy",之后便可以通过 npm run deploy 命令进行一键打包及部署
想要了解更多有关 blocklet deploy 的信息,可以参考 blocklet deploy
- 配置发布命令
在 package.json 文件中的 scripts 增加一项 "upload": "npm run bundle && blocklet upload",之后便可以通过 npm run upload 命令进行一键打包及发布
想要了解更多有关 blocklet upload 的信息,可以参考 blocklet upload
配置组件#
如果你希望将其他的 blocklet 和你的 blocklet 打包在一起安装,可以在 blocklet.yml 中配置组件。
添加组件#
在项目根目录下执行 blocklet add <name> --store <store-url> --title xxx --mount-point /xxx 命令添加组件
你可以在任意商店的组件详情页中看到添加组件的命令,比如,如果你想添加 Discuss Kit, 可以在它的 详情页 中找到命令 blocklet add did-comments --store=https://store.blocklet.dev
name: 组件在商店中的 ID--store: 组件在哪个商店--title: 你可以为组件自定义不同的名称--mount-point: 组件的挂载点 如果你填写了 '/my-prefix',那么所有以其为前缀的请求都会被转发到配置的组件
执行命令后,组件信息会被添加到 blocklet.yml 中
components:
- name: xxxx
mountPoint: /xxxx
source:
store: https://xxxxxxxxx
name: xxxx
version: latest示例:https://github.com/blocklet/component-demo/blob/main/blocklet.yml
删除组件#
执行 blocklet remove <name> 删除组件
执行命令后,组件信息将从 blocklet.yml 中移除。