Минимизация файла javascript Play Framework / скрытие источников

Я хочу минимизировать написанные мной javascripts в Play Framework 2.3.10. Я начал помещать все свои скрипты в app/assets/javascripts/*. Кроме того, я добавил следующий маршрут в conf/routes:

GET   /assets/v/*file   controllers.Assets.versioned(path="/public", file: Asset)

Я добавил следующие строки, чтобы включить минификацию с помощью uglify и дайджеста. в plugins.sbt:

addSbtPlugin("com.typesafe.sbt" % "sbt-uglify" % "1.0.3")

addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.0.0")

и в build.sbt:

pipelineStages in Assets := Seq(uglify, digest)

Все работает как шарм. Когда я запрашиваю веб-сайт в своем браузере, я вижу уменьшенный файл javascript (.min.js), а также обычный (исходный) файл javascript (.js). Проблема в том, что существует исходная карта, сгенерированная и прикрепленная к минимизированному javascript. Он ссылается на исходный файл. Как я могу этого избежать? Можно ли скрыть/отказать в доступе к исходным файлам javascript, чтобы пользователь мог просто запросить уменьшенную версию (даже при попытке доступа к исходному файлу через прямой URL [например, mypage.de/assets/v/javascripts/script.js ]) ?

Заранее спасибо, Роб


person obab    schedule 04.02.2016    source источник


Ответы (1)


Хорошо,

я нашел решение для моей проблемы. Я добавил фильтр для фильтрации всех файлов .js в папке app/assets/javascripts/. Я сделал это, добавив

addSbtPlugin("com.slidingautonomy.sbt" % "sbt-filter" % "1.0.1")

в мой файл project/plugins.sbt. Я изменил конвейерные этапы в build.sbt, чтобы добавить фильтр.

pipelineStages in Assets := Seq(uglify, digest, filter)

includeFilter in filter := new FileFilter {
  def accept(pathname: File): Boolean = {
    val path = pathname.getAbsolutePath.replaceAll("\\\\", "/")
    path.contains("javascripts/functions")
  }
}

excludeFilter in filter := "*.min.js"

Теперь Play создает все минифицированные файлы js.min. После этого фильтруются все файлы в javascripts/functions, кроме файлов min.js. Надеюсь, это поможет.

Роб

person obab    schedule 11.02.2016