У меня вопрос по документации node.js по кешированию модулей :
Модули кэшируются после первой загрузки. Это означает (среди прочего), что каждый вызов require ('foo') будет возвращать один и тот же объект , если он будет разрешен в один и тот же файл.
Множественные вызовы require ('foo') могут не приводить к многократному выполнению кода модуля. Это важная особенность. С его помощью можно возвращать «частично выполненные» объекты, что позволяет загружать транзитивные зависимости, даже если они вызывают циклы.
Что имеется ввиду may?
Я хочу знать, всегда ли require будет возвращать один и тот же объект. Таким образом , в случае , если я нужен модуль A в app.jsи изменить объект экспорта внутри app.js(тот , который требует возвращения) и после этого требуется модуль B в app.jsтом , что само по себе требует модуль А , Я всегда получить модифицированную версию этого объекта, или новый один?
// app.js
var a = require('./a');
a.b = 2;
console.log(a.b); //2
var b = require('./b');
console.log(b.b); //2
// a.js
exports.a = 1;
// b.js
module.exports = require('./a');