代码之家  ›  专栏  ›  技术社区  ›  Flamefire

使用Visual Studio代码调试node.js依赖项,该依赖项是“需要”d

  •  0
  • Flamefire  · 技术社区  · 6 年前

    我想使用VSC开发现有项目的一些扩展。尤其是UglifyJS3。

    因此,我创建了一个测试脚本,在该脚本中,我调用模块来测试和调试我的更改。这里的代码很简单:

    var UglifyJS = require("../tools/node");
    var result = UglifyJS.minify(code, ...)
    

    这在调试/单步执行时有效。但是,vsc已经无法解析uglifyjs导出的minify函数。
    我也不能简单地在uglifyjs文件中设置断点并触发它们。VSC在启动时显示一个关于无法解析断点的错误。

    看着 ../tools/node.js 我看到的代码如下:

    var UglifyJS = exports;
    require.resolve("../lib/utils.js")
    ...
    require.resolve("../lib/minify.js")
    require.resolve("./exports.js")
    

    具有 exports.js 包含 exports["minify"] = minify; .

    有什么我错过的吗?如何使调试(以及可选的IntelliSense)工作?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Flamefire    6 年前

    <eval> VM<some number>

    var fn = require.resolve("<file>"); // Resolve the filename
    var code = fs.readFileSync(fn, "utf8");; // Read the file contents
    new Function("exports", code)(exports); // Create a new function containing the files code and execute it
    

    new Function eval https://whereswalden.com/2011/01/10/new-es5-strict-mode-support-new-vars-created-by-strict-mode-eval-code-are-local-to-that-code-only/