繁体   English   中英

执行时编辑NodeJS文件

[英]Editing NodeJS file while it is executing

这应该是一个琐碎的问题。 说我有我的漂亮文件foo.js 我使用node foo.js运行它。 它运行并运行并运行。 当它仍在运行时,我打开我最喜欢的文本编辑器并编辑foo.js ,从而在代码中添加了很多错误。

我可以确定这不会影响foo.js的当前执行吗? 我以为文件将在执行开始时被读取,然后由于将其保存在内存中而无需再次读取文件,对吗? 还是对文件的编辑在执行后会引起某些问题?

您在命令行上指定的初始文件(例如node foo.js )的node.js代码模型是,在启动时从磁盘读取foo.js ,将其解析为Javascript字节代码,然后执行。 此后,您在该文件中定义的任何函数或变量都将保留在内存中。 在任何情况下, node.js都不会完全自己重新读取foo.js

它可能会被重读的一些潜在位置是:

  1. 如果您有一些在磁盘上引用foo.js特定代码require()例如require()语句)或一些实际从磁盘读取它的代码。

  2. 如果您使用任何自动重启工具,例如forever 在这种情况下,如果您的进程崩溃并永远重新启动它,则显然foo.js在重新启动期间读取foo.js的新副本。

  3. 如果您分叉,生成或执行自己的进程。 请注意,这可能以某些形式的动态集群或某些类型的代码(仅在某些情况下才启动新过程)发生。

使用Node.JS执行文件时,该文件只能读取一次。 如果在执行期间编辑文件,则不会影响执行。 您可以安全地编辑它,而不必担心错误。

当然,如果要动态加载某些模块,则有所不同,例如:

setTimeout(function() {
  var myModule = require("./myModule.js");
}, 10000);

如果在加载myModule.js之前对其进行编辑,它将随更改一起加载。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM