Minifying RequireJS Javascript codebase в один файл
Я новичок в RequireJS, и, возможно, это уже обсуждаемая проблема, но я не мог найти ясного ответа или мнения об этом.
У меня есть приложение, работающее с RequireJS. В нем много файлов JavaScript, загружаемых Требованием, поскольку они необходимы. Работа как ожидалось.
В поисках инспектора Fiddler я мог видеть, что все файлы были загружены при запуске приложения. Я считаю, что Require сделал глубокий обход всех ссылок на файлы JavaScript и загрузил их все в начале.
Если это так, то я считаю, что было бы лучше создать один файл, его минимизировать и загрузить с помощью тега <script>
html.
Если я сгенерирую один файл со всеми скриптами и предварительно загрузив их с помощью <script>
, то RequireJS снова загрузит их?
Я что-то делаю неправильно?
В производственной среде может быть лучшим решением?
Спасибо заранее.
Ответы
Ответ 1
Что вам нужно, это Оптимизатор RequireJS.
Оптимизатор выполняет следующие действия (из документов):
- Объединяет связанные скрипты вместе в строковые слои и минимизирует их с помощью UglifyJS (по умолчанию) или Closure Compiler (опция при использовании Java).
- Оптимизирует CSS, вставляя файлы CSS, на которые ссылается @import и удаляет комментарии.
Здесь одна статья по теме для дальнейших ссылок.
Посмотрите также на r.js
, инструмент командной строки, который включает оптимизатор. Используя r.js
, вы можете создать оптимизированную сборку из файла приложения main.js
с помощью только:
node r.js -o build.js
где build.js
- файл конфигурации requirejs, содержащий ваш профиль сборки (baseUrl
, paths
и т.д.).