我有一个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使用缓存,所以只加载文件一次。