debughelp
v1.0.5
Published
调试用的一些脚本 , 可能会持续更新
Readme
DebugHelp
DebugHelp 是一个调试工具库,提供了多种功能,包括对象属性访问监控和模块加载路径解析,方便开发者在调试过程中快速定位问题。
安装
使用 npm 安装:
npm install debughelp功能
1. 监控对象键访问
通过 viewGet 函数,可以监控一个对象的键访问,适用于调试时查看对象属性的使用情况。
示例
const { viewGet } = require("debughelp");
const obj = { a: 1, b: 2, c: 3 };
viewGet(obj);
// 访问对象属性时会触发日志输出
console.log(obj.a); // 输出: ["a", 1]2. 对象属性访问监控
通过 addGetDebug 和 addSetDebug 函数,可以监控对象属性的获取和设置操作。
函数定义
const { addGetDebug, addSetDebug } = require("debughelp");
const obj = { name: "John", age: 30 };
// 监控属性获取
addGetDebug(obj, "name", (prop, value) => {
console.log(`属性 ${prop} 被获取,值为: ${value}`);
});
// 监控属性设置
addSetDebug(obj, "age", (prop, value) => {
console.log(`属性 ${prop} 被设置,值为: ${value}`);
});
// 测试
console.log(obj.name); // 输出: 属性 name 被获取,值为: John
obj.age = 31; // 输出: 属性 age 被设置,值为: 31功能
1. 解决 import {} 无法引入 *.js 文件的问题
通过 importHook.js,可以解决在使用 import {} 时,无法正确引入没有显式 .js 后缀的模块的问题。
使用方法
在运行 Node.js 脚本时,添加 --loader 参数指定 importHook.js:
node --loader debughelp/importHook.js your-script.mjs示例
假设有以下文件结构:
project/
├── main.mjs
├── utils/
│ └── helper.js在 main.mjs 中:
import { someFunction } from './utils/helper';运行时可能会报错,提示找不到模块 ./utils/helper。通过指定 --loader debughelp/importHook.js,可以自动补全 .js 后缀,解决此问题:
node --loader debughelp/importHook.js main.mjs2. 支持递归引用
importHook.js 还支持递归引用模块,确保在模块之间存在循环依赖时,能够正确解析路径并加载模块。
示例
假设有以下文件结构:
project/
├── a.mjs
├── b.mjs在 a.mjs 中:
import { funcB } from './b.mjs';
export function funcA() {
console.log('Function A');
funcB();
}在 b.mjs 中:
import { funcA } from './a.mjs';
export function funcB() {
console.log('Function B');
funcA();
}通过 --loader debughelp/importHook.js,可以正确处理这种递归引用:
node --loader debughelp/importHook.js a.mjs许可证
本项目基于 ISC 许可证。 ```
