🐛 Console 调试
ThinkAdmin 当前没有内置 consoleDebug() 开关,也不会在 admin.js 中重写浏览器 console 方法。后台模板会在 admin.js 之后加载 public/static/extra/script.js,该文件是项目级自定义脚本入口,适合按项目需要追加调试控制逻辑。
源码中的 public/static/extra/script.js 默认只包含扩展示例和 showTableImage()、showSpec() 两个辅助方法;其中的 console.log 只是注释示例,不会自动生效。
使用位置
后台主布局会在加载 layui.js、require.js、admin.js 后加载 extra/script.js。因此调试脚本可以写在:
public/static/extra/script.js使用静态插件更新时,该项目级文件不会被 composer require zoujingli/think-plugs-static 覆盖,适合保留本项目自己的 RequireJS 扩展、事件监听或调试逻辑。
可选调试开关
如果项目希望在生产环境静默普通调试日志,可以自行加入一个轻量开关:
$(function () {
var nativeConsole = {
log: console.log,
warn: console.warn,
info: console.info,
debug: console.debug,
error: console.error
};
var debugMode = localStorage.getItem('thinkadmin_console_debug') === '1';
['log', 'warn', 'info', 'debug'].forEach(function (method) {
console[method] = function () {
if (debugMode) {
nativeConsole[method].apply(console, arguments);
}
};
});
window.consoleDebug = function (state) {
debugMode = typeof state === 'boolean' ? state : !debugMode;
localStorage.setItem('thinkadmin_console_debug', debugMode ? '1' : '0');
nativeConsole.log('Console debug ' + (debugMode ? 'enabled' : 'disabled'));
return debugMode;
};
window.consoleDebugState = function () {
return debugMode;
};
});开启或关闭:
consoleDebug(true); // 开启
consoleDebug(false); // 关闭
consoleDebug(); // 切换上面的示例只拦截 log、warn、info、debug,保留 console.error 原样输出,避免隐藏运行时错误。
使用建议
- 这不是框架内置 API,而是项目级扩展示例;不要在公共插件中默认依赖
consoleDebug()。 - 已上线项目如果重写
console,建议保留error输出,并为开关使用项目独立的localStorage键名。 - 如果只是排查异步加载页面,可直接监听
reInit事件并按需输出调试信息。
$(function () {
$body.on('reInit', function (event, $dom) {
console.log('Event.reInit', $dom);
});
});