2016-08-31 2 views
0

한 가지 문제를 해결하기 위해 많은 시간을 보냈습니다. 나는 무한 루프의 문제로 끝을 맺었다. 나는 해결책에 가깝다고 느낍니다. 그러나 나는 실종 된 블록을 가지고 있습니다.babel transpiler로 재생을위한 Sbt 구성

활성화기를 실행하면 transpiler가 새로운 main.js를 생성하고 시스템이 새로운 변경을 감지합니다. 그래서 다른 transpile 실행합니다. 그것은 무한히 반복됩니다. 나는 기본 transpiler의 실행 해를 방지하기 위해

excludeFilter in (Assets, JshintKeys.jshint) := "*.js" 

라인을 추가 한

name := """angular-seed-play-java""" 
version := "1.0-SNAPSHOT" 

lazy val root = (project in file(".")).enablePlugins(PlayJava, PlayEbean, SbtWeb) 

JsEngineKeys.engineType := JsEngineKeys.EngineType.Node 
scalaVersion := "2.10.5" 

libraryDependencies ++= Seq(
    "mysql" % "mysql-connector-java" % "6.0.3", 
    "org.webjars" % "angularjs" % "1.3.0-beta.2", 
    "org.webjars.npm" % "systemjs" % "0.19.36", 
    "org.webjars" % "jquery" % "3.1.0" 
) 

routesGenerator := InjectedRoutesGenerator 

val browserifyOutputDir = settingKey[File]("Browserify output directory") 
browserifyOutputDir := baseDirectory.value/"public"/"js" 

excludeFilter in (Assets, JshintKeys.jshint) := "*.js" 

sourceGenerators in Assets += task[Seq[File]] { 
    val outputFile = browserifyOutputDir.value/"main.js" 
    "browserify -t [ babelify --presets [ latest ] ] " + baseDirectory.value + "/public/js/main.jsx -o "+outputFile.getPath !; 
    List(outputFile) 
} 

pipelineStages := Seq(rjs, digest, gzip) 

:

여기 내 build.sbt입니다. 또한 그것 없이는 또 다른 오류가 발생합니다. 여기

내 프로젝트에서 라인/plugins.sbt
addSbtPlugin("io.teamscala.sbt" % "sbt-babeljs" % "1.0.3") 

는 솔직히 SBT 책 O를 절반을 읽었습니다하지만 강이 도구를 사용하여 편안하지 않습니다.

답변

0

SBT 파일을 읽는 것이 입력 및 출력과 같은 모양이며 동일한 디렉토리를 사용합니다. 이 디렉토리가 sourceDirectories 인 것으로 의심됩니다. 해당 디렉토리의 파일을 업데이트하면 작업이 더티 (dirty)로 표시되고 말한대로 - 무한대로 다시 작성됩니다.

일반적인 sbt 빌드는 소스와 생성 된 파일을 분리 된 상태로 유지합니다. 순수한 스칼라에서 생성 된 소스는 sourceManaged에 일반적으로 target/에 저장됩니다.

더 많은 것을 알아 내면이 대답을 업데이트 할 것입니다.

관련 문제