{"id":13544304,"url":"https://github.com/batu1579/hamibot-starter","last_synced_at":"2025-04-02T14:30:42.134Z","repository":{"id":37895630,"uuid":"470461774","full_name":"batu1579/hamibot-starter","owner":"batu1579","description":"一个快速开始用 TypeScript 编写 Hamibot 脚本的模板","archived":false,"fork":false,"pushed_at":"2023-08-21T11:17:22.000Z","size":413,"stargazers_count":97,"open_issues_count":1,"forks_count":146,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-11-03T11:33:25.067Z","etag":null,"topics":["autojs","hamibot","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/batu1579.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-03-16T06:35:48.000Z","updated_at":"2024-10-29T08:35:56.000Z","dependencies_parsed_at":"2024-11-05T23:15:56.250Z","dependency_job_id":null,"html_url":"https://github.com/batu1579/hamibot-starter","commit_stats":null,"previous_names":[],"tags_count":1,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/batu1579%2Fhamibot-starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/batu1579%2Fhamibot-starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/batu1579%2Fhamibot-starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/batu1579%2Fhamibot-starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/batu1579","download_url":"https://codeload.github.com/batu1579/hamibot-starter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246832116,"owners_count":20841112,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["autojs","hamibot","typescript"],"created_at":"2024-08-01T11:00:45.558Z","updated_at":"2025-04-02T14:30:41.469Z","avatar_url":"https://github.com/batu1579.png","language":"TypeScript","funding_links":[],"categories":["工具"],"sub_categories":["更多可使用搜索 [搜索 hamibot](https://github.com/search?l=JavaScript\u0026q=hamibot\u0026type=Repositories)"],"readme":"\u003ch1 align=\"center\"\u003eWelcome to hamibot-starter 👋\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.npmjs.com/package/script-template\" target=\"_blank\"\u003e\n    \u003cimg alt=\"Version\" src=\"https://img.shields.io/npm/v/script-template.svg\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"#\" target=\"_blank\"\u003e\n    \u003cimg alt=\"GitHub package.json version\" src=\"https://img.shields.io/github/package-json/v/batu1579/hamibot-starter\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"[#](https://github.com/batu1579/hamibot-starter/blob/main/LICENSE)\" target=\"_blank\"\u003e\n    \u003cimg alt=\"License: MPL--2.0\" src=\"https://img.shields.io/badge/License-MPL--2.0-yellow.svg\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003e 一个用来快速开始编写 `Hamibot` 脚本的模板，使用 `TypeScript` 编写。\n\u003e\n\u003e 通过声明文件提供 `Hamibot` 绝大部分函数的代码提示、类型检查和文档，帮你减少键入次数和查询官方文档的时间。提供常用的代码片段，直接调用可以辅助更快完成开发，并让你能专注于核心功能。\n\u003e\n\u003e 欢迎各位大佬帮我一起完善这个项目！\n\n## 快速开始\n\n1. 下载本仓库，有两种方式可选：\n\n   1. 点击右上角的 [Fork](https://github.com/batu1579/hamibot-starter/fork) 按钮将此仓库克隆到自己账户下，然后将仓库克隆到本地。\n\n        \u003e 推荐，使用这种方式可以方便的得到更新，但是一个账户只能克隆一个。\n\n   2. 点击右上角的 [Use this template](https://github.com/batu1579/hamibot-starter/generate) 按钮以此仓库为模板在账户下创建仓库。\n\n        \u003e 如果你的账号里已经有一个克隆的仓库，那就只能选择这种方法。但是使用这种方式没法方便的通过合并上游仓库的方式来更新。\n\n   3. 如果你不准备使用 Git 作为版本管理工具，也可以从 [这里](https://github.com/batu1579/hamibot-starter/archive/refs/heads/main.zip) 下载压缩包。\n\n2. 使用指令安装依赖：\n\n    ```sh\n    npm install\n    ```\n\n    \u003e 因为使用了 npm 来管理依赖，在安装之前请确保安装过 `node.js` 。\n\n3. 在 `src` 文件夹下编写代码，程序入口为 `src/index.ts` 。\n\n4. 完成编写后打包项目，有三种方式可选：\n\n   1. 使用 VSCode 快捷键 `ctrl + shift + b` 打开任务菜单，然后选择 `npm build` 打包。\n   2. 使用命令打包项目：\n\n      ```sh\n      npm run build\n      ```\n\n   3. 在 VS Code 资源管理器的 NPM 脚本窗口中选则对应的配置运行。\n\n      \u003e 如果没有找到 NPM 窗口可以在命令窗口中查找并选择 `焦点在 NPM 脚本 视图上`\n\n5. 在控制台上传打包后的文件: `dist/index.js` 。\n\n## 使用预制函数\n\n所有预制库都存放在 `src/lib` 文件夹中。\n\n详细使用方式和文档见 [预制库说明](./src/lib/README.md) 。\n\n## 导出设置\n\n1. 在 `buildConfig` 文件夹下添加新的配置文件，例如： `webpack.MyBuildConfig.js`。\n2. 编写独立的构建设置，可以复制 `buildConfig/webpack.dev.js` 中的内容然后修改。\n3. 在 `package.json` 文件中的 `scripts` 字段中添加新的记录，例如：\n\n    ```json\n    \"scripts\": {\n        \"build\": \"webpack --config ./buildConfig/webpack.dev.js\",\n        \"MyBuildConfig\": \"webpack --config ./buildConfig/webpack.MyBuildConfig.js\"\n    },\n    ```\n\n4. 在打包项目时选择对应的配置。\n\n## 编写 UI\n\n在编写 UI 的时候需要使用 XML 字符串，不要使用 `tsx` 文件。\n\n```typescript\nlet widget = floaty.window(\n    \"\u003cframe gravity='center' bg='#FF0000'\u003e\\\n        \u003ctext id='text'\u003e悬浮文字\u003c/text\u003e\\\n    \u003c/frame\u003e\"\n);\nsetTimeout(() =\u003e {\n    widget.close();\n}, 5000);\n```\n\n\u003e 我目前找到的编译 tsx 的方法都会打包成 React 对象，如果有了解的大大拜托帮帮我蟹蟹。\n\n## 注意事项\n\n1. 如果有用到暂时没有声明过的模块，可以使用 TS 的忽略语法:\n\n   \u003e 注意：忽略会跳过所有检查，除了语法错误。使用时会有风险，请在确保肯定不会出现问题后再使用。\n\n    ```typescript\n    // 多行忽略（取消两个标记间的代码检查。）\n    // 可以不使用结束标记，即忽略到文件结尾。\n    // 注意：必须在文件顶部使用。\n    // @ts-nocheck\n    canvas.drawLine(0, 0, 1080, 1920, paint);\n   \n    // @ts-check\n   \n    // 单行忽略（取消下一行的代码检查。）\n    // @ts-ignore\n    canvas.drawLine(0, 0, 1080, 1920, paint);\n    ```\n\n## TODO List\n\n- [ ] 将 hamibot 的类型声明单独发布到 `DefinitelyTyped`\n- [ ] 添加声明文件 [24/26]\n  - [ ] Util\n  - [ ] Canvans\n- [ ] 使用 `Eslint` 在提交前统一代码风格\n- [ ] 检查泛型注释\n- [ ] 检查回调函数注释\n- [ ] 检查注释中的类和方法是否使用行内代码格式\n- [ ] 检查注释中的示例代码是否都能够运行\n- [ ] 统一函数类型（Function、function）\n\n## 作者\n\n👤 **BATU1579**\n\n- Github: [@batu1579](https://github.com/batu1579)\n\n## 支持\n\n如果有帮到你的话，帮我点颗小星星叭~ ⭐️\n\n***\n_This README was generated with ❤️ by [readme-md-generator](https://github.com/kefranabg/readme-md-generator)_\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbatu1579%2Fhamibot-starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbatu1579%2Fhamibot-starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbatu1579%2Fhamibot-starter/lists"}