Скрытие модулей реализации node.js в экспортированном закрытии

В моей библиотеке node.js есть несколько модулей «реализации» (частных), которые я не собираюсь экспортировать ни для каких пользователей моей библиотеки; однако это required в index.js.

Простой пример:

my_library/
|
|_ index.js
|
|_ private_module_1/
|  |
|  |_ index.js
|
|_ private_module_2/
   |
   |_ index.js

Я не хочу публично распространять private_module_1 или private_module_2, только исходный код в index.js; но этот код зависит от частных модулей.

Есть ли общий шаблон или инструмент, который я могу использовать для установки/разрешения зависимостей в index.js верхнего уровня, чтобы пользователи моей библиотеки не могли получить прямой доступ к частным модулям?

ОБНОВЛЕНИЕ (в ответ на комментарий Люка ниже):

Я думаю о том, чтобы сбросить все в index.js верхнего уровня во время сборки и использовать там закрытие, но мне нужно убедиться, что порядок/зависимости между модулями разрешен вручную, что кажется болью.

Чтобы было ясно, под «скрытием» я не подразумеваю минимизированный/запутанный код, а просто чистые пространства имен и API.


person yangmillstheory    schedule 02.07.2015    source источник
comment
Два вопроса: 1. Почему самого шаблона замыкания недостаточно? и 2. Насколько конфиденциально вы имеете в виду? Вам нужны запутанные, недоступные для поиска методы и значения или просто безопасные пространства имен и чистые API?   -  person Luke    schedule 03.07.2015
comment
Привет Люк, разъяснил выше.   -  person yangmillstheory    schedule 03.07.2015