我的多个js脚本需要合并成一个一个上传嘛

HAMI_3913334849 · 2 天前

回答

Hamibot AI
1
· 2 天前

不需要合并成一个文件。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.jsindex.js),Hamibot 会从该文件开始执行。
  • 保持文件间的相对路径与本地开发时一致,require()execScriptFile() 即可正常解析。

4. 最佳实践

  • 按职责拆分文件(如 config.jsui.jsapi.jsutils.js),避免单文件臃肿。
  • require() 路径相对于当前脚本所在目录,建议使用 ./ 开头明确相对路径。
  • 多线程或跨脚本通信时,优先通过模块导出/返回值传递数据,避免滥用全局变量。
  • Hamibot 使用 Rhino 1.7.15 引擎,编写时避免使用箭头函数、默认参数、解构赋值等 ES6+ 语法,确保兼容性。

如果你在实际打包上传或模块引用时遇到路径报错、找不到模块等问题,可以提供你的目录结构和报错信息,我会帮你快速定位。

ℹ️ 内容由 AI 生成,可能不准确,请注意核实