【问题标题】:Setting breakpoints in Sapper server code -- is it feasible?在 Sapper 服务器代码中设置断点——可行吗?
【发布时间】:2020-01-21 16:58:02
【问题描述】:

我正在玩一个新的 Sapper 模板 ("sveltejs/sapper-template#webpack"),并想使用 WebStorm 在src/server.js 中设置一个断点。设置断点很容易,但我无法让调试器在遇到断点时暂停执行。我尝试了很多不同的方法,然后才意识到由于 Svelte/Sapper 的工作方式可能无法让它工作,即编译器生成一组实际执行的新文件。因此,当我在“面向开发人员”的文件中设置一个具有零影响的断点时,因为它是实际执行的生成文件。具体来说,我说的是面向开发人员的文件src/server.js 文件和__sapper__/dev/server/server.js 中生成的文件。

我看到一个 YouTube 视频,其中成功演示了我正在尝试做的事情:https://www.youtube.com/watch?v=x155wGkbKm8。在视频中,作者使用 Sapper cli.js 作为驱动程序,使用 dev 作为参数——这就是运行 npm run dev 时发生的事情。但是,正如您将在视频中看到的那样,成功使用的server.js 文件是src/ 中的文件,而不是__sapper__/build/server/ 中生成的文件。这对我来说没有意义。

所以,我的问题是:

1) 有没有其他人能够像我在上面描述的那样以及视频中显示的那样在面向开发人员的 Sapper 用户代码上设置断点?如果有,你是怎么做到的?

2)如果不能像这样直接设置断点,是否可以改用生成的代码,但对构建步骤做一些修改,使生成的代码更适合调试?

如果还有其他选择,我也有兴趣了解这些。谢谢!

【问题讨论】:

    标签: debugging webstorm breakpoints svelte sapper


    【解决方案1】:

    在启用--inspect 的情况下运行 cli:

    node --inspect node_modules/sapper/dist/cli.js dev
    

    然后在浏览器中访问chrome://inspect 打开调试器。

    您可以在“源”选项卡中手动设置断点,也可以在代码中使用debugger 关键字。

    【讨论】:

    • 还有更简单的方法。使用ndb command-to-debug,即ndb npm run dev
    猜你喜欢
    • 2019-11-23
    • 2011-07-11
    • 1970-01-01
    • 2017-04-26
    • 2019-08-28
    • 1970-01-01
    • 2021-09-09
    • 1970-01-01
    • 2011-04-26
    相关资源
    最近更新 更多