Подтвердить что ты не робот

Оптимизация JS из WebJars с использованием sbt-rjs в приложении Play 2.3.x

Можно ли использовать приложение Play 2.3 для оптимизации/оптимизации JS (используя sbt-rjs), которое включено в мое приложение через WebJars?
Чтобы привести конкретный пример: я пытаюсь создать модуль core.js который содержит все мои сторонние библиотеки, объединенные и обобщенные в одном файле, которые затем могут быть указаны как зависимость для других модулей AMD.
Было бы здорово включить эти библиотеки через WebJars вместо загрузки источника "вручную".

Вот фрагмент из моего файла build.sbt, где я указываю свои зависимости webjar:

// Webjars
libraryDependencies ++= Seq(
  "org.webjars" % "requirejs" % "2.1.15",
  "org.webjars" % "underscorejs" % "1.7.0",
  "org.webjars" % "jquery" % "1.11.1",
  "org.webjars" % "bootstrap" % "3.3.1" exclude("org.webjars", "jquery"),
  "org.webjars" % "angularjs" % "1.3.4-1" exclude("org.webjars", "jquery")
)

Здесь my requireJS build config

requirejs.config({
  baseUrl: '/assets/javascripts',
  shim: {
    'jsRoutes': {
      deps: [],
      exports: 'jsRoutes'
    },
    'angular': {
      deps: ['jquery'],
      exports: 'angular'
    },
    'underscore': {
      exports: '_'
    },
    'angularRoute': ['angular'],
    'angularCookies': ['angular'],
    'bootstrap': ['jquery']
  },
  paths: {
    'requirejs': '../lib/requirejs/require',
    'jquery': '../lib/jquery/jquery',
    'underscore': '../lib/underscorejs/underscore',
    'angular': '../lib/angularjs/angular',
    'angularRoute': '../lib/angularjs/angular-route',
    'angularCookies': '../lib/angularjs/angular-cookies',
    'bootstrap': '../lib/bootstrap/js/bootstrap',
    'jsRoutes': '/jsroutes',
    'core': './core'
  },
  modules: [
    {
      name: 'core'
    }
  ]
});

И, наконец, здесь мой модуль core.js:

define(['angular', 'angularRoute', 'underscore', 'bootstrap'], function() {
  // core dependencies are loaded...
});

После запуска activator clean stage из командной строки я надеялся, что встроенный файл core.js будет включать в себя все мои указанные зависимости, конкатенированные и минированные в один файл, но в них нет ни одного из них. Если я укажу файл не WebJar в качестве зависимости для core.js, он правильно оптимизирует его.

Я пытаюсь сделать это? Я довольно много искал и не мог найти четкого ответа в любом случае.

Спасибо!

4b9b3361

Ответ 1

Я использую Play 2.4.3.

Добавлен addSbtPlugin("com.typesafe.sbt" % "sbt-rjs" % "1.0.7") в plugins.sbt

// rjs = RequireJS, uglifies, shrinks to one file, replaces WebJars with CDN
client accepts them
pipelineStages := Seq(rjs, digest, gzip)

Это в моем build.sbt делает все сокращающиеся работы и т.д. для подставки JS и webjars.