Как включить функцию минификации Closure Compiler в Play 2.0 - PullRequest
4 голосов
/ 21 марта 2012

Согласно документации здесь: https://github.com/playframework/Play20/wiki/AssetsGoogleClosureCompiler написано:

Любой файл JavaScript, присутствующий в приложении / ресурсах, будет проанализирован компилятором Google Closure, проверен на наличие ошибок и зависимостей и минимизирован при активации в конфигурации сборки.

Однако я не могу узнать, как установить это в конфигурации сборки, я попытался добавить код:

val main = PlayProject(appName, appVersion, mainLang = SCALA).settings(
    javascriptEntryPoints <<= baseDirectory(base =>
        base / "app" / "assets" / "javascripts" ** "*.js"
    )
)

в build.scala, однако я не могу найти минимизированные файлы JavaScript.

Вот шаги, которые я пробовал:

  1. Добавьте приведенный выше код в build.scala

  2. Создать файл JavaScript в app / assets / javascripts

  3. Введите «compile» в консоли Play и обратите внимание, что минимизированные файлы JavaScript не создаются в app / assets / javascripts или public / javascripts

Однако я заметил, что если я напишу какой-нибудь неверный JavaScript, я получу сообщение об ошибке (например, 127.0.0.1:9000 - Ошибка компиляции), так что похоже, что компилятор закрытия проверяет ошибки успешно, однако я ' Я не уверен, как сделать минификацию.

Если говорить о минификации, возможно ли использовать обычный (не минимизированный) файл JavaScript только в режиме разработки, но в производстве использовать минимизированную версию?

Спасибо

1 Ответ

3 голосов
/ 30 марта 2012

Play не помещает ресурсы в публичную папку или папку ресурсов после их компиляции.Скомпилированные ресурсы (JS, Less или CoffeeScript) размещаются внутри:

/ target / scala [версия] / resource_managed / main /...

Воспроизведение будет затемсоздайте сопоставление с этими файлами, чтобы вы могли обрабатывать ресурсы так, как если бы они находились в папке / public.

Следует отметить, что при компиляции в режиме разработки файлы не будут выводиться в этот каталог.Когда вы нажмете путь localhost: 9000 с помощью браузера, будет выполнена окончательная компиляция, а затем выведены файлы в каталог.

Чтобы ответить на свернутую версию (и увидеть лучший пример того, как изменитьbuild config), я рекомендую ознакомиться с постом Янна Саймона об использовании Less in Play.Концептуально это тот же процесс, что и в JS, и у него также есть отличный пример того, как переключаться между не минимизированными / минимизированными версиями в зависимости от режима воспроизведения:

https://plus.google.com/u/0/108788785914419775677/posts/QgyUF9cXPkv

...