hamibot-starter
hamibot-starter copied to clipboard
一个快速开始用 TypeScript 编写 Hamibot 脚本的模板
Welcome to hamibot-starter 👋
一个用来快速开始编写
Hamibot
脚本的模板,使用TypeScript
编写。通过声明文件提供
Hamibot
绝大部分函数的代码提示、类型检查和文档,帮你减少键入次数和查询官方文档的时间。提供常用的代码片段,直接调用可以辅助更快完成开发,并让你能专注于核心功能。欢迎各位大佬帮我一起完善这个项目!
快速开始
-
下载本仓库,有两种方式可选:
-
点击右上角的 Fork 按钮将此仓库克隆到自己账户下,然后将仓库克隆到本地。
推荐,使用这种方式可以方便的得到更新,但是一个账户只能克隆一个。
-
点击右上角的 Use this template 按钮以此仓库为模板在账户下创建仓库。
如果你的账号里已经有一个克隆的仓库,那就只能选择这种方法。但是使用这种方式没法方便的通过合并上游仓库的方式来更新。
-
如果你不准备使用 Git 作为版本管理工具,也可以从 这里 下载压缩包。
-
-
使用指令安装依赖:
npm install
因为使用了 npm 来管理依赖,在安装之前请确保安装过
node.js
。 -
在
src
文件夹下编写代码,程序入口为src/index.ts
。 -
完成编写后打包项目,有三种方式可选:
-
使用 VSCode 快捷键
ctrl + shift + b
打开任务菜单,然后选择npm build
打包。 -
使用命令打包项目:
npm run build
-
在 VS Code 资源管理器的 NPM 脚本窗口中选则对应的配置运行。
如果没有找到 NPM 窗口可以在命令窗口中查找并选择
焦点在 NPM 脚本 视图上
-
-
在控制台上传打包后的文件:
dist/index.js
。
使用预制函数
所有预制库都存放在 src/lib
文件夹中。
详细使用方式和文档见 预制库说明 。
导出设置
-
在
buildConfig
文件夹下添加新的配置文件,例如:webpack.MyBuildConfig.js
。 -
编写独立的构建设置,可以复制
buildConfig/webpack.dev.js
中的内容然后修改。 -
在
package.json
文件中的scripts
字段中添加新的记录,例如:"scripts": { "build": "webpack --config ./buildConfig/webpack.dev.js", "MyBuildConfig": "webpack --config ./buildConfig/webpack.MyBuildConfig.js" },
-
在打包项目时选择对应的配置。
编写 UI
在编写 UI 的时候需要使用 XML 字符串,不要使用 tsx
文件。
let widget = floaty.window(
"<frame gravity='center' bg='#FF0000'>\
<text id='text'>悬浮文字</text>\
</frame>"
);
setTimeout(() => {
widget.close();
}, 5000);
我目前找到的编译 tsx 的方法都会打包成 React 对象,如果有了解的大大拜托帮帮我蟹蟹。
注意事项
-
如果有用到暂时没有声明过的模块,可以使用 TS 的忽略语法:
注意:忽略会跳过所有检查,除了语法错误。使用时会有风险,请在确保肯定不会出现问题后再使用。
// 多行忽略(取消两个标记间的代码检查。) // 可以不使用结束标记,即忽略到文件结尾。 // 注意:必须在文件顶部使用。 // @ts-nocheck canvas.drawLine(0, 0, 1080, 1920, paint); // @ts-check // 单行忽略(取消下一行的代码检查。) // @ts-ignore canvas.drawLine(0, 0, 1080, 1920, paint);
TODO List
- [ ] 将 hamibot 的类型声明单独发布到
DefinitelyTyped
- [ ] 添加声明文件 [24/26]
- [ ] Util
- [ ] Canvans
- [ ] 使用
Eslint
在提交前统一代码风格 - [ ] 检查泛型注释
- [ ] 检查回调函数注释
- [ ] 检查注释中的类和方法是否使用行内代码格式
- [ ] 检查注释中的示例代码是否都能够运行
- [ ] 统一函数类型(Function、function)
作者
👤 BATU1579
- Github: @batu1579
支持
如果有帮到你的话,帮我点颗小星星叭~ ⭐️
This README was generated with ❤️ by readme-md-generator