在Webstorm 7.0.3中调试时热交换Node.js文件

时间:2014-02-08 18:28:42

标签: javascript node.js debugging ide webstorm

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

以下是有效的方法:

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

以下是不起作用的:

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

以下是JetBrains帮助网站上的说明:

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

但是,如果我更改呈现页面的JS功能,保存文件并刷新浏览器,则不会显示更改。

配置:

  • WebStorm 7.0.3
  • Chrome w / JetBrains插件2.0
  • Windows 8
  • 的Node.js
    • express 3.4.8
    • HJS

2 个答案:

答案 0 :(得分:0)

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

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?

答案 1 :(得分:0)

有一个名为hotswap(https://github.com/rlidwka/node-hotswap)的模块也看起来很有前途 - 实际上,您可以通过hotswap模块访问模块的方法,该模块会为您检查幕后的变化。您可以通过hotswap对象访问模块的方法,如果发生了更改,则会在不重新启动服务器的情况下反映出来。

我没有深入挖掘模块本身,但我可以想象存在内存问题(节点缓存需要加载模块,我不确定它是如何清理它们的)以及可能的性能问题。非常适合开发,不确定您是否希望在生产中使用它。