2014-06-19 3 views
2

scalajs docs를 올바르게 이해했다면 프로젝트 당 하나의 자바 스크립트 생성 만 허용됩니다. 이 제한을 피할 수있는 방법이 있습니까?scalajs : 하나의 프로젝트에 여러 앱이 있습니까?

현재 Play 프레임 워크 용 scalajs 하위 프로젝트를 만들었습니다. 이 서브 프로젝트에서 저는 작업중인 모든 서비스를위한 모든 스카 이즈 앱을 만들 계획이었습니다. 지금은이 제한을 발견하고 내가 생각할 수있는 유일한 두 가지 솔루션이 있기 때문에, 정말 혼란스럽고 짜증나 :

  1. 모든 scalajs 응용 프로그램에 대한
  2. 나에게 허용되지 않는 일 "메가 스크립트를"만들 별도의 하위 프로젝트 생성

두 프로젝트는 모두 큰 프로젝트에 적합하지 않습니다.

답변

4

모든 scalajs는 자체 하위 프로젝트이며 SBT를 통해 모든 것을 관리합니다. MutliProject 다음은 하나의 단일 파일로 컴파일되는 6 개 이상의 하위 프로젝트가있는 재생 프로젝트의 다소 복잡한 예입니다. scala-js-binding 확인은 Build.scala

lazy val preview = (project in file(".")).enablePlugins(PlayScala) settings(previewSettings: _*) dependsOn shared dependsOn bindingPlay aggregate frontend 

    //aggregate scalaJs 

    lazy val frontend = Project(
    id = "frontend", 
    base = file("frontend") ) dependsOn shared dependsOn binding 

...

 scalajsOutputDir  := baseDirectory.value/"public"/"javascripts"/"scalajs", 

//fastOptJs - not optimized (3Mb) 
     compile in Compile <<= (compile in Compile) dependsOn (fastOptJS in (frontend, Compile)), 

//fullOptJS - fully optimized (330k) 
     dist <<= dist dependsOn (fullOptJS in (frontend, Compile)), 
+0

본래의 질문에 설명 된 내 상황에 맞는 훌륭한 사례에 감사드립니다. 내가 할 수 있으면 두 번 투표했을거야. – GrayR

3

Scala.js은 참으로 프로젝트 당 하나 개의 자바 스크립트 출력을 생성하도록 설계되었습니다. 이것을 바꿀 방법이 거의 없습니다.

그러나 Scala.js의 제한 사항은 아닙니다. 스칼라/자바 자체도 같은 방식으로 동작합니다. 스칼라/자바 응용 프로그램의 단일 sbt 프로젝트에서 두 개의 .jar를 생성 할 수 없습니다. Scala.js가 다른 방식으로 동작해야하는 이유는 알 수 없습니다.

@ user3430609에서 제안한 것처럼 sbt 빌드에서 multiple projects을 사용하십시오.

관련 문제