компиляция программы javascript с помощью requirejs для удаления зависимости require

Я написал приложение JavaScript, используя requirejs для обработки внедрения зависимостей. Я скомпилировал файл, но при включении его как скрипта получаю очевидную ошибку:

Uncaught ReferenceError: определение не определено

Я бы хотел, чтобы мое приложение JavaScript НЕ зависело от загрузчика AMD, если разработчик решит не использовать его. Однако из-за сложности приложения я хотел бы использовать его для обработки зависимостей моего приложения.

Есть ли компилятор, который компилирует JavaScript для удаления зависимости AMD? Я видел немного шума вокруг Grunt, но не нашел прямых ответов о том, является ли это особенностью Grunt.


person Matthew James Davis    schedule 09.07.2013    source источник


Ответы (1)


Вы не можете полностью удалить зависимость require / define, но можете заменить ее на прокладку гораздо меньшего размера, которая не приводит к значительному снижению производительности. См. Как я могу предоставить другим пользователям библиотеку, не зависящую от RequireJS? раздел руководства по оптимизации:

Если вы создаете библиотеку для использования на веб-страницах, которые могут не использовать RequireJS или загрузчик AMD, вы можете использовать оптимизатор, чтобы объединить все ваши модули в один файл, а затем обернуть их в функцию и использовать прокладку AMD API. Это позволяет вам поставлять код, который не поставляется со всем RequireJS, и позволяет экспортировать любой тип API, который работает на простой веб-странице без загрузчика AMD.

almond - это очень маленькая прокладка API AMD, поэтому ее можно использовать вместо require.js, когда все ваши модули собраны в один файл с помощью оптимизатора RequireJS. Параметр конфигурации сборки wrap поместит оболочку функции вокруг кода, или вы можете предоставить свою собственную оболочку, если вам нужно выполнить дополнительную логику.

person explunit    schedule 09.07.2013