【问题标题】:Hot swap Node.js files while debugging in Webstorm 7.0.3在 Webstorm 7.0.3 中调试时热交换 Node.js 文件
【发布时间】:2014-03-06 04:21:54
【问题描述】:

我开始使用 Node.js 和 Webstorm 7.0.3。我用 express 创建了一个简单的 Node.js 应用程序,并在本地运行它。 我想编辑并保存一个 .js 文件,刷新浏览器并查看更改。据我了解,这应该是开箱即用的。

以下是有效的:

  • 我启动 Node.js 服务器
  • 我使用 Chrome 导航到快速路径
  • 页面正确呈现。

以下是行不通的:

  • 我更改了呈现页面的 JavaScript 函数
  • 我保存文件
  • 我刷新浏览器
  • 网页未反映 JavaScript 函数的更改

以下是我在 JetBrains 帮助网站上遵循的说明:

  • 创建名为“app.js”的 Node.js 运行/调试配置
    • 检查“启动后”和“使用 Javascript 调试器”选项
  • 创建一个名为“app.js.JavaScript”的 JavaScript 调试配置
  • 为“app.js”配置选择“调试”。
  • Node.js 服务器启动
  • 为“app.js.JavaScript”选择“调试”。
  • 我现在可以在应用程序中设置断点。

但是,如果我更改呈现页面、保存文件并刷新浏览器的 JS 函数,更改不会出现。

配置:

  • WebStorm 7.0.3
  • 带有 JetBrains 插件 2.0 的 Chrome
  • Windows 8
  • Node.js
    • 快递3.4.8
    • hjs

【问题讨论】:

    标签: javascript node.js debugging ide webstorm


    【解决方案1】:

    有一个名为 hotswap (https://github.com/rlidwka/node-hotswap) 的模块看起来也很有希望 - 本质上,您可以通过 hotswap 模块访问模块的方法,该模块会为您检查幕后的变化。您通过 hotswap 对象访问模块的方法,如果发生更改,则无需重新启动服务器即可反映。

    我还没有深入研究模块本身,但我可以想象存在内存问题(Node 在加载时缓存所需的模块,我不确定它如何清理它们)和可能的性能问题。非常适合开发,不确定您是否希望将其用于生产。

    【讨论】:

      【解决方案2】:

      当您说“更改呈现页面的 JavaScript 函数”时,我假设该函数是服务器上的路由函数。例如:

      exports.form = function (req, res) {
          res.render('login', { title: 'Login', message: req.flash('error') });
      };
      

      刷新浏览器时不会自动获取对任何服务器端代码的更改。您通常必须重新启动服务器才能使这些更改生效。

      但是,请查看nodemon。 Nodemon 监视文件系统的更改并在检测到更改时自动重新启动服务器。对开发非常有用。

      另外,看看这篇文章,了解如何将 nodemon 与 WebStorm 集成:

      How can I run nodemon from within WebStorm?

      【讨论】:

      • 不错。我从 node.js 命令提示符添加了 nodemon。然后编辑“app.js”配置。我将节点解释器更改为“C:\Users\ahoffer\AppData\Roaming\npm\nodemon.cmd”。当我更改为路由功能时,服务器会自动启动。
      猜你喜欢
      • 2017-10-18
      • 1970-01-01
      • 1970-01-01
      • 2020-04-29
      • 2015-11-29
      • 2013-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多