2012-11-10 2 views
2

пытается найти правильный путь, чтобы определить путь модуля требуется() ИНГ шахты с учетом следующих требований:Node.js - нахождение пути требуют() ИНГ модуль

  • должен быть строгий режим соответствует
  • не может делать какие-либо предположения о программных арг (т.е. process.argv)
  • должны работать, когда это требуется от нескольких модулей в произвольных местах единого исполнения (т.е. мой модуль кэшируется)

Я в конечном итоге чтобы это работало, исправляя Module._load() и фиксируя путь вызывающих абонентов в закрытии, как показано здесь: github

Однако это не так, я должен что-то упустить.

ответ

0

Patching module._load - лучший способ, я думаю. Вы можете получить только первый модуль, который вызвал ваш модуль на module.parent.filename. И все свойства модуля только для первой загрузки. Согласно source code, если он кэширован, вы не можете положиться ни на что. Вы можете попробовать удалить себя из кеша (delete require.cache[__filename];), который тогда каждый раз, когда требуется ваш модуль, вы получаете правильный родительский элемент, но это увеличит время загрузки.

Смежные вопросы