VSCode中如何调试eval过的NodeJS代码?

场景是,我要为一个文件注入全局变量并且调试这个文件,代码如下:

demo.js

// describe是个全局变量,想在这打断点
describe();

main.js

function describe() {
    // ...
}
const content = fs.readFileSync(demo, "utf-8");
// 注入全局变量describe
const globalFn = eval(`(function global(describe) {${content}})`);
globalFn.call(this, describe);

cli.js

require("../src/main.js").run(process.argv);

VSCode的debug配置

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Test",
      "type": "node",
      "request": "launch",
      "program": "${workspaceFolder}/scripts/cli.js",
      "stopOnEntry": false,
      "cwd": "${workspaceFolder}",
      "runtimeArgs": ["--nolazy"],
      "console": "integratedTerminal",
      "sourceMaps": true
    }
  ]
}
阅读 2.3k
1 个回答

eval 过好像就没法调试,也没法优化,所以尽量不要使用。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题