首页 > 其他分享 >Nocobase快速上手 - 开发第一个插件

Nocobase快速上手 - 开发第一个插件

时间:2024-06-02 19:31:42浏览次数:25  
标签:插件 第一个 -- Nocobase nocobase yarn nvm hello

在前面的几篇博文中,记录了在Nocobase中配置collection和界面,这篇文章开始插件的开发。插件可以扩展Nocobase的业务能力,解锁更强大的功能。

环境搭建

创建插件需要配置nocobase的开发环境,笔者采用的是clone 官方代码repo的方式。

git clone https://github.com/nocobase/nocobase.git

代码clone到本地后,进入代码目录,安装依赖.
要注意项目要求的node版本是v18+,并且需要Yarn 1.22.x

推荐使用nvm来管理node版本随时切换,很多前端项目都有对node版本的要求

nvm

nvm安装非常简单,仅仅需要一个命令即可

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

然后就可以用nvm安装最新版本的node

nvm install 22

nocobase

在nocobase目录下安装依赖前,最好先配置yarn mirror,否则很可能因为网络问题造成失败

yarn config set registry https://registry.npmmirror.com/
yarn config set sqlite3_binary_host_mirror https://npmmirror.com/mirrors/sqlite3/

安装依赖

yarn install --fronzen-lockfile

依赖安装后,需要初始化一下应用

yarn nocobase install

然后启动应用

yarn dev

如果没有报错信息正常启动,并且在http://localhost:13000地址上能访问,那么开发环境就搭建成功了。

创建插件

创建插件使用yarn pm命令,pm是Nocobase的插件管理器。

yarn pm create @my-project/plugin-hello

创建完成后,可以在界面上看到创建的后的插件,如果没有显示,可以尝试用如下命令进行一次add操作:

yarn pm add @my-project/plugin-hello

可以在界面上看到新添加的插件
Nocobase plugin

第一行插件代码

新增的插件还没有任何功能,我们根据官方文档来编写第一行插件代码.

首先是新建. /src/server/collections/hello.ts文件

import { defineCollection } '@nocobase/database';

export default defineCollection({
  name: 'hello',
  fields: [{ type: 'string', name: 'name' }],
});

然后修改. /src/server/plugin.ts文件

import { Plugin } from '@nocobase/server';

export class PluginHelloServer extends Plugin {
  async afterAdd() {}

  async beforeLoad() {}

  async load() {
    // This is just an example. Expose all actions of the hello collection to the public
    this.app.acl.allow('hello', '*', 'public');
  }

  async install() {}

  async afterEnable() {}

  async afterDisable() {}

  async remove() {}
}

export default PluginHelloServer;

这两个文件分别定义了插件所使用的collection和这个collection的使用权限.
修改文件后,需要对插件进行激活来进行测试。

yarn pm enable @my-project/plugin-hello

测试插件

插件创建成功后,我们用curl进行简单的测试确认其可以正常工作

curl --location --request POST 'http://localhost:13000/api/hello:create' \
--header 'Content-Type: application/json' \
--data-raw '{
    "name": "Hello world"
}'

这段命令是向插件中定义的hello collection中插入数据。数据新增成功后,查询验证:

curl --location --request GET 'http://localhost:13000/api/hello:list'

小结

本文记录了Nocobase开发插件的简单步骤,通过新建插件,修改代码,初步熟悉插件开发的过程。虽然这个插件还没有什么具体的业务功能,但不失为一个好的开端。
更多功能正在探索中,欢迎交流。

标签:插件,第一个,--,Nocobase,nocobase,yarn,nvm,hello
From: https://blog.csdn.net/jiangnanjunxiu/article/details/139390108

相关文章

  • 插件:qrcode的使用
    源文档: qrcode文档安装npminstall--saveqrcodeTypeScript用户:如果您使用@types/qrcode,则需要在数据段上方添加//@tsignore,因为它需要data:string。用法用法:qrcode〔options〕<inputstring>二维码选项:-v、--qversion二维码符号版本(1-40)[编号]-e、--error纠错级别......
  • MyBatis系统学习篇 - 分页插件
    MyBatis是一个非常流行的Java持久层框架,它简化了数据库操作的代码。分页是数据库查询中常见的需求,MyBatis本身并不直接支持分页功能,但可以通过插件来实现,从而帮助我们在查询数据库的时候更加方便快捷引入依赖<dependency><groupId>com.github.pagehelper</groupId>......
  • 01_Zotero插件安装
    Zotero插件安装目录页1.ZoteroStyle插件使用说明1.1.期刊标签、影响因子不显示?2.zotero-better-notes插件安装及使用说明2.1.笔记模板(采用HTML代码控制)2.2.笔记样式(采用CSS代码控制)2.2.1.我现在使用的CSS样式0.1.插件安装找到插件的对应地址......
  • 写一个 vscode 插件
    HxTranslate这是一个vscode扩展插件示例,参考:YourFirstExtension,可将helloworld更改为自己的扩展插件名称如:HxTranslate,其余默认即可.建议使用文心一言解答疑问.注意事项deepin终端运行:sudoaptinstallnodejs终端运行:npmi-gyogenerator-codety......
  • 超详细Python教程——第一个python程序
    一、Python简介Python是著名的“龟叔”GuidovanRossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。牛人就是牛人,为了打发无聊时间竟然写了一个这么牛皮的编程语言。现在,全世界差不多有600多种编程语言,但流行的编程语言也就那么20来种。不知道......
  • shell编程01——第一个shell脚本
    Shell和shell脚本Shell和shell脚本是两个概念,Shell是用C语言编写程序,shell脚本是一种为shell编写的脚本程序第一个shell脚本1.新建一个文件:touchtest.sh2.使脚本可执行:chmod+xtest.sh3.编辑test.sh,内容为:#!/bin/bashecho"helloworld"4.执行脚本./test.sh,......
  • 进件最新版点微同城源码34.7+全套插件+小程序前后端
    模板挺好看的带全套插件自己耐心点配置一下插件可以H5可以小程序资源链接:最新版点微同城源码34.7+全套插件+小程序前后端-资源吧......
  • Visual Studio 2022安装SVN插件教程
    原文链接:https://blog.csdn.net/weixin_44504146/article/details/1328311011.第一步:避免踩坑,超级重要!!!关闭VisualStudio2022应用程序;(不然插件装不上,一直转圈!)2.第二步:下载VisualStudio2022版本对应的SVN插件https://www.visualsvn.com/visualsvn/download/(注意对应版本20......
  • 第一个用户进程 --- 根文件系统 sbin/init 进程 及其配置文件 /etc/inittab
    sbin/init是根文件系统提供的用户进程,它是第一个被执行的用户进程。执行过程会读取配置文件/etc/inittab,运行inittab文件中的各个子进程。 inittab配置文件格式Formatforeachentry:<id>:<runlevels>:<action>:<process>id:  表示这个子进程要使用的控制台,如果省略,......
  • cmake构建Qt插件
    cmake构建Qt插件为什么要使用插件在进行大型客户端项目的开发时,往往需要分成很多的功能模块,这是架构在设计时候就必须考虑的,良好的架构应该易于扩展,使用动态库就可以很好的实现,但是动态库使用中会使用到具体的定义,高层模块反而依赖于底层模块的实现,这是不符合设计模式中依赖反转......