Прошу прощения, если мои вопросы наивны. В полном раскрытии я относительно новичок в Node.JS и JavaScript в целом. Я надеюсь, что кто-то может пролить свет на то, как Node.JS обрабатывает повторяющиеся, возможно транзитивные зависимости? Даже в том, что касается глобального пространства имен или каких-либо конфликтов, или разных версий одного и того же модуля (например, v0.1 vs v0.2 в другом месте вашего приложения), но более вероятно, что это будет разумно и эффективно, когда это возможно. Например:Как Node.JS обрабатывает повторяющиеся транзитивные зависимости?
- Есть ли вероятность, что Узел достаточно умен в плане следа, чтобы не иметь нескольких копий одной и той же точной версии библиотеки в папке с вашими модулями? Что-то вроде 1 копии для каждой требуемой версии с символическими ссылками или что-то подобное, указывающее на этот код для каждого модуля, который зависит от этой версии этого модуля?
- Что касается загрузки дублирующих модулей в память во время выполнения? Если v0.1 модуля x уже загружен в память, если какой-то другой зависит от модуля, который требует той же версии этого модуля, будет ли код загружен в память или будет достаточно Узел, чтобы увидеть, что этот код уже загружен и повторно используется? Как изолированный узел является узлом в этом отношении?
Спасибо!
Обычно для предотвращения конфликтов версий используются отдельные копии. – dandavis