Есть ли способ использовать модуль, отличный от CommonJS, в Node?

Скажем, кто-то не опубликовал свой модуль в npm, а даже если и сделал, скажем, у него не было его в качестве модуля commonjs. Будет ли способ по-прежнему использовать этот плагин или модуль внутри узла? Я знаю, что мы можем использовать код узла в браузерах с помощью browserify, но мне просто интересно, есть ли способ сделать наоборот.
Этот вопрос кажется самым близким, который я изучаю, но пока нет ответа.

Моя конечная цель на самом деле состоит в том, чтобы иметь возможность использовать библиотеки, которые не являются конкретно модулем CJS в узле, и при этом иметь возможность тестировать мой код в узле/кли.


person shriek    schedule 09.11.2014    source источник
comment
Вы можете использовать код не в формате commonjs, но вам придется написать для него собственный загрузчик или найти модуль загрузчика, поддерживающий то, что у вас есть.   -  person jfriend00    schedule 09.11.2014
comment
Загрузчик в этом контексте будет чем-то вроде запроса в узле, верно? Я думал, что это больше связано с раскрытием глобальной переменной, которую использует плагин, а не с загрузчиком. Не могли бы вы уточнить?   -  person shriek    schedule 09.11.2014
comment
Загрузчик (как и require()) должен загрузить код с диска в память, а затем сделать все необходимое (учитывая формат, в котором находится код), чтобы выполнить его и каким-то образом раскрыть символы, которые он намеревается сделать общедоступными.   -  person jfriend00    schedule 09.11.2014
comment
Ах. Это имеет смысл. Таким образом, не существует универсального загрузчика для всех модулей, не являющихся CJS. Каждый модуль должен иметь свой собственный загрузчик, чтобы указать, что выставлять. Спасибо. У меня сложилось впечатление, что browserify-shim сделал это, но похоже, что он просто предоставляет браузерам модули из браузерного пакета.   -  person shriek    schedule 09.11.2014