debughelp

1.0.5 • Public • Published

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.mjs

2. 支持递归引用

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 许可证。 ```

Readme

Keywords

none

Package Sidebar

Install

npm i debughelp

Weekly Downloads

10

Version

1.0.5

License

ISC

Unpacked Size

8.82 kB

Total Files

8

Last publish

Collaborators

  • cx2017