重载相关问题
文档索引:
10-troubleshooting/04-reload-issues.md处理
/kifejs reload相关的常见问题。
问题 1:重载后状态丢失
现象: 重载后所有脚本的全局变量变为 undefined。
原因: KifeJS 每次 reload 会销毁旧引擎、创建新引擎,所有内存中的状态都会被清除。
解决方案: 在脚本中使用每次重载重新初始化的模式:
javascript
// 每次重载重新初始化
globalThis.__myModule = globalThis.__myModule || {};
globalThis.__myModule.reloadCount = (globalThis.__myModule.reloadCount || 0) + 1;问题 2:重载后定时器不工作
现象: 重载前设置的定时器在重载后不再触发。
原因: 旧引擎销毁时所有定时器自动失效。
解决方案: 在脚本中重新创建定时器:
javascript
// 每次重载后重新设置定时器
setTimeout(function() {
setInterval(function() {
KifeJS.log("重载后的定时任务");
}, 60000);
}, 1000); // 延迟 1 秒确保全部加载完毕问题 3:重载后事件监听器失效
现象: 之前注册的事件监听器不再响应。
原因: 事件总线是全局对象,重载后需要重新创建。
解决方案: 所有监听器在脚本执行时重新注册。
问题 4:重载命令无响应
现象: 执行 /kifejs reload 后没有反应。
原因: 权限不足或命令未注册。
检查:
- 确认拥有 OP 权限
- 查看日志中是否有命令注册错误
- 执行
/kifejs version确认模组已加载
问题 5:重载后部分脚本未加载
现象: 某些脚本在重载后没有执行。
原因:
- 文件名不满足
.js结尾 - 包脚本缺少
index.js - 脚本路径包含非法字符
检查:
- 确认文件名以
.js结尾 - 确认包脚本目录包含
index.js - 检查日志中的错误信息
重载最佳实践
- 重载前确认脚本语法正确
- 重载后检查日志确认所有脚本加载成功
- 设计脚本时考虑重载的幂等性
- 使用模块加载器管理初始化顺序
