Я читал this article Аксель Rauschmayer, а именно интересно о следующих sentencs:Что означает «исходный объект экспорта» в commonjs?
Node.js стиле экспорт одной стоимости не работают. В Node.js вы можете экспортировать отдельные значения вместо объектов, например: module.exports = function() {...} Если вы сделали это в модуле A, вы не смогли бы использовать экспортированные функции в модуле B, так как переменная a a будет ссылаться на исходный объект экспорта A.
Что означает «исходный экспортный объект A»?
В этом предложении используется система CommonJS, а не NodeJS, а исходный объект экспорта - это объект, который вы пытались переписать, когда вы выполняли 'module.exports = function {...}'. Другими словами, в 'B', импортирование' A' не будет импортировать эту функцию, если вы не присвоите ее * свойству 'module.exports' в' A'. Если в NodeJS вы получите любое значение, которое было бы присвоено непосредственно 'module.exports', если оно есть. –
@squint благодарит за комментарии. Существуют ли какие-либо различия между Nodejs и CommonJS в отношении 'export'? но написано 'In Node.js, вы можете экспортировать одиночные значения вместо объектов, например: module.exports = function() {...} Если вы сделали это в модуле A, вы не сможете использовать экспортированная функция в модуле B' – Blake
Извините, я думаю, что я немного в своем комментарии выше. Это касается циклических зависимостей, поэтому я думаю, что они говорят, что будет ограничение на то, что вы в конечном итоге импортируете в этой ситуации. Поэтому, если вы перезаписываете 'module.exports' со значением в A, который импортировал B, который импортирует A, в B, у вас не будет доступа к этому перезаписанному значению' export' из A, поскольку B был бы загружен * до * произошла перезапись, поэтому вместо перезаписанного значения оно получает исходное значение 'module.exports' (исходный объект). –