javascript/nodejs中的require是否每次在其他模块中导入时都执行相同的文件?

javascript/nodejs中的require是否每次在其他模块中导入时都执行相同的文件?,javascript,node.js,requirejs,es6-modules,javascript-import,Javascript,Node.js,Requirejs,Es6 Modules,Javascript Import,JavaScript/Node.js中的require()是否每次导入到其他模块时都会执行相同的文件 如果是,如何在一个文件中包含一个数组并从另一个JS文件中追加/更新其中的值? 例如,我在一个文件中有一个数组,我正在从多个文件更新该数组,我希望所有文件都只与更新的数组交互。如何实现这一点?模块会被缓存,如果再次加载,则会加载缓存副本 模块在需要时缓存在此对象中。删去 如果此对象中有一个键值,则下一个请求将重新加载模块。 这不适用于本机插件,因此会导致重新加载 在一个错误中 也可以添加或替换条

JavaScript/Node.js中的
require()
是否每次导入到其他模块时都会执行相同的文件

如果是,如何在一个文件中包含一个数组并从另一个JS文件中追加/更新其中的值?
例如,我在一个文件中有一个数组,我正在从多个文件更新该数组,我希望所有文件都只与更新的数组交互。如何实现这一点?

模块会被缓存,如果再次加载,则会加载缓存副本

模块在需要时缓存在此对象中。删去 如果此对象中有一个键值,则下一个请求将重新加载模块。 这不适用于本机插件,因此会导致重新加载 在一个错误中

也可以添加或替换条目。已检查此缓存 在本机模块之前,以及如果添加了与本机模块匹配的名称 对于缓存,不需要调用就可以接收本机模块 不再小心使用

你可以用

相反,您可以从模块中公开一个函数来读取数组值,这样它将始终获取一个新值

myArray.js index.js 因此,现在请始终使用
myArray.get()
读取该值,并使用
myArray.update(data)
更新该值。

require()
仅运行该文件一次,然后使用缓存的导出。不确定你剩下的问题是什么,或者它是否仍然适用。
const clearModule = require('clear-module');
const myArray = clearModule('./myArray'); // but you need load this everytime to get fresh copy of that array
const myArray = [1];

const get = () => {
  return myArray;
};

const update = (data) => {
  myArray.push(data);
};

exports.get = get;
exports.update = update;
const myArray = require('./myArray');

console.log(myArray.get()); // [1]
console.log(myArray.update(2)); // update the value
console.log(myArray.get()); // [1,2]