【问题标题】:Live/Hot node.js server source code editingLive/Hot node.js服务器源代码编辑
【发布时间】:2012-08-26 00:50:21
【问题描述】:

我有问题。

我的问题是每次我对我的 node.js 服务器代码进行更改时,我都必须重新启动整个东西才能看到结果。

我记得看到的不是这个,而是能够将 chrome 直接通过管道传输到服务器的源代码中,然后“热编辑”它。也就是说,对代码的修改立即生效,服务器继续运行。

我希望我是清楚的。

在服务器实际运行时直接编辑代码(尤其是对于小事)并立即生效将是一个实时节省。

有人知道怎么做吗?

【问题讨论】:

  • 你在想这个:node-inspector。实时编辑通过 Node.js 调试器界面进行。我不确定将这条路线用于实际代码部署是否可行,但让我们看看你得到了什么答案。
  • 啊..是的...我的应用程序/服务器越复杂,就越难弄乱触发/负责某些状态的少量代码...有重新启动服务器并“播放”到那一点是一件非常麻烦的事情。除了节点检查器之外,还有什么东西实际上是为动态编码和部署而设计的吗?如果不部署,那么至少作为一种实时 IDE?

标签: javascript node.js nodejitsu


【解决方案1】:

查看我对我自己的问题的回答:https://stackoverflow.com/a/11157223/813718

简而言之,有一个名为 forever 的 npm 模块可以满足您的需求。它可以监视源文件并在检测到更改时重新启动节点实例。

【讨论】:

  • Asker 实际上想要在不重新启动应用程序的情况下热编辑代码(大概是为了避免丢失易失状态或避免(甚至很短的)停机时间)。
  • @lanzz 是的,我认为你是对的。我第一次阅读时误读/误解了这个问题。不过,我非常怀疑在生产节点实例上是否可能发生这样的事情;如果是的话,我也很乐意知道(我会删除这个答案,因为那显然是不正确的。在此之前,我确信这是实现可靠文件监视的少数安全方法之一)。
【解决方案2】:

我不太了解 pipe-to-chrome 部分...但是似乎有一个节点模块可以监听用户定义文件的更改并自动重新启动服务器:

How can I edit on my server files without restarting nodejs when i want to see the changes?

https://github.com/isaacs/node-supervisor

【讨论】:

  • 我的目标是“实时”修改......您的建议只是在代码更改时重新启动服务器,这就是我现在正在做的事情......
【解决方案3】:

是的,有这样的事情。

只要利用 Javascript 中所谓的邪恶的 eval() 函数即可。 (您可能需要类似 websocket 的东西来连接服务器并提醒它有关更改)

我正在实现相同功能的中途,但是如果要保留服务器状态(例如变量的当前值)需要考虑很多事情

关于管道到镀铬的部分 可能这就是你提到的? https://github.com/node-inspector/node-inspector/wiki/LiveEdit

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-23
    • 2014-10-01
    • 2014-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多