如果节点进程的 JavaScript 文件在文件系统上发生更改,节点进程是否受到保护?



我有一个nodejs项目,我运行一个本地脚本

node somethingThatTakesVeryLong.js

在此过程运行时,我更改文件的内容(例如,通过 git 切换分支(是否安全?节点是否已将所有 JavaScript 文件加载到当前上下文的 RAM 中,或者是否有更改可能会从更改的文件加载内容(例如,由于仅在文件系统已经更改后发生的导入(?

基本上:即使我删除/更改其底层文件,我也可以信任节点进程安全运行吗?或者这会导致副作用吗?

我想知道我是否可以在后台运行时继续处理新分支,或者我是否必须重新克隆项目。

这是一个尚未加载的示例,您将获得修改后的版本。

文件1.js

require('./file2');

文件2.js

console.log("Waiting 10 seconds");
setTimeout(() => {
require('./file3');
}, 10000);

文件3.js

console.log("this is file3");

因此,如果您运行node file1,并在 10 秒内修改 file3,它将具有新的修改版本。

但是,假设我们修改了file1.js。

require('./file3');
require('./file2');

然后再运行一次,如果你修改file3,超时后会是一样的,这是因为node.js使用缓存,所以只加载文件一次。

相关内容

  • 没有找到相关文章