Изначально функция module.exports=exports
и require
возвращает объект module.exports
.
, если мы добавим свойство к объекту, скажем exports.a=1
, затем module.exports и export все еще относятся к одному и тому же объекту. Поэтому, если мы вызываем require и присваиваем модуль переменной, то переменная имеет свойство a, а ее значение равно 1;
. Но если мы переопределим один из них, например exports=function(){}
, то они теперь разные: экспорт относится к новому объекту, а module.exports относится к исходному объекту. И если нам нужен файл, он не вернет новый объект, так как module.exports не относится к новому объекту.
Для меня я буду продолжать добавлять новое свойство или переопределять их оба новый объект. Просто переопределить одно не правильно. И имейте в виду, что module.exports
- настоящий босс.