Возможно ли сделать модуль JavaScript совместимым с NodeJS и RequireJS?

Я изучаю, как различные концепции модулей могут применяться в приложениях NodeJS и браузера, используя требование NodeJS (очевидно, в приложениях NodeJS) и RequireJS для среды веб-браузера.

Затем мне стало ясно, что некоторые модули могут быть полезны для использования как клиентскими, так и серверными приложениями и, следовательно, могут быть повторно использованы.

Как модули могут быть разработаны так, чтобы они были совместимы с обеими этими средами?

Один синхронный и один асинхронный. Моя первая мысль заключалась в использовании асинхронного синтаксиса, а затем для определения настраиваемого модуля для NodeJS, который просто вызывает асинхронный обратный вызов, синхронно. Но как включить эмулятор RequireJS в модуль кросс-среды без использования синхронного обратного вызова NodeJS?

Ответ 2

См. также набор шаблонов в https://github.com/umdjs/umd

Об async vs. sync - для define() в Node, обычно используется только синхронное выполнение функции factory, переданной для определения. Вот как requirejs работает при работе в Node.

Ответ 3

Проект http://uRequire.org объединяет пробелы AMD и nodejs/commonJs. U может записывать либо (или оба), либо выполнить/развернуть до любой из двух или standalone.js.