[playframework] Play 2.3.x 앱에서 sbt-rjs를 사용하여 WebJars에서 JS 최적화



0 Answers

Question

WebJars를 통해 내 앱에 포함 된 Play 2.3 앱 concat / optimize JS (sbt-rjs 사용)가 가능합니까?
구체적인 예를 들면 : 모든 제 3 자 라이브러리가 연결되고 단일 파일로 축소 된 core.js 모듈을 작성하려고합니다.이 파일은 다른 AMD 모듈에 대한 종속성으로 지정할 수 있습니다.
"수동으로"소스를 다운로드하는 대신 WebJars를 통해 이러한 라이브러리를 포함시키는 것이 좋습니다.

다음은 내 webjar 종속성을 지정하는 build.sbt 파일의 스 니펫입니다.

// 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")
)

다음은 내 requireJS 빌드 구성입니다.

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'
    }
  ]
});

그리고 마지막으로 여기 내 핵심 이야 .js 모듈 :

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

커맨드 라인에서 activator clean stage 를 실행 한 후에는 내장 된 core.js 파일에 지정된 모든 종속성이 연결되고 단일 파일로 축소되기를 기대했지만 그 중 하나는 포함하지 않았습니다. webjar가 아닌 파일을 core.js에 대한 종속성으로 지정하면 올바르게 조정됩니다.

내가 할 수있는 일이 가능한거야? 나는 꽤 많은 인터넷 검색을하고 어느 쪽이든 명확한 대답을 찾을 수 없었습니다.

감사!




Related