回答
不需要合并成一个文件。Hamibot 原生支持多文件项目管理,你可以按功能拆分代码,并以项目形式整体上传。
1. 模块化组织(推荐)
将公共逻辑或独立功能拆分为多个 .js 文件,通过 require() 在主脚本中引入。Hamibot 遵循 CommonJS 模块规范。
utils.js
// 文档地址 https://docs.hamibot.com/
function formatTime() {
return new Date().toLocaleString();
}
module.exports = { formatTime: formatTime };
main.js
// 文档地址 https://docs.hamibot.com/
var utils = require('./utils.js');
toast('当前时间:' + utils.formatTime());
2. 动态执行独立脚本
如果你的多个脚本是彼此独立的任务,不需要合并,可以使用 engines.execScriptFile() 按需调用:
// 文档地址 https://docs.hamibot.com/
engines.execScriptFile('./task1.js');
engines.execScriptFile('./task2.js', { loopTimes: 3, interval: 2000 });
3. 上传方式
- 将包含所有
.js文件的文件夹打包为.zip。 - 在 Hamibot 控制台上传该 ZIP 包,系统会自动识别项目结构。
- 上传时可指定入口文件(如
main.js或index.js),Hamibot 会从该文件开始执行。 - 保持文件间的相对路径与本地开发时一致,
require()和execScriptFile()即可正常解析。
4. 最佳实践
- 按职责拆分文件(如
config.js、ui.js、api.js、utils.js),避免单文件臃肿。 require()路径相对于当前脚本所在目录,建议使用./开头明确相对路径。- 多线程或跨脚本通信时,优先通过模块导出/返回值传递数据,避免滥用全局变量。
- Hamibot 使用 Rhino 1.7.15 引擎,编写时避免使用箭头函数、默认参数、解构赋值等 ES6+ 语法,确保兼容性。
如果你在实际打包上传或模块引用时遇到路径报错、找不到模块等问题,可以提供你的目录结构和报错信息,我会帮你快速定位。
ℹ️ 内容由 AI 生成,可能不准确,请注意核实