2016-03-12 16 views
5

ResourceGeneratorsを使用してScala.jsソースマップをコピーするにはどうすればよいですか?このように、<code>products</code>を使用しているとき、私は<code>fastOptJs</code> -generatedの.jsファイルをコピーする<code>resourceGenerators</code> sbtのキーを使用してい

> show frontend/fastOptJS 
[info] Attributed(/some/path/frontend/target/scala-2.11/frontend-fastopt.js) 
[success] Total time: 0 s, completed Mar 12, 2016 1:59:22 PM 

(resourceGenerators in Compile) <+= 
     (fastOptJS in Compile in frontend, packageScalaJSLauncher in Compile in frontend, packageJSDependencies in Compile in frontend) 
      .map((f1, f2, f3) => { 
      Seq(f1.data, f2.data, f3) 
      }) 

をSBTに、次の実行、私は、生成されたファイルのパスを見ることができます

Scala.js-生成ランチャーが終わるところ同様に、私は簡単に見ることができます:

> show frontend/packageScalaJSLauncher 
[info] Attributed(/some/path/frontend/target/scala-2.11/frontend-launcher.js) 
[success] Total time: 0 s, completed Mar 12, 2016 2:00:10 PM 

私はできません、どのようにこれまでに、私は.js.mapファイルの場所に私を指すタスク/キーを見つけます。私はプラグインのソースを調べてみましたが、見つけられませんでした。 build.sbtにマニュアルマッピングを作成せずにこれを行う方法はありますか?

答えて

5

Scala.jsで生成されるソースマップは、常に対応する.jsファイルの名前+ ".map"を持っています。したがって、f1に関連付けられているものはf1.getParentFile/(f1.getName + ".map")です。

Btw、新しいビルドは<+=を使用しないでください。より理解しやすい+=を代わりに使用する必要があります。

resourceGenerators in Compile += Def.task { 
    val f1 = (fastOptJS in Compile in frontend).value.data 
    val f1SourceMap = f1.getParentFile/(f1.getName + ".map") 
    val f2 = (packageScalaJSLauncher in Compile in frontend).value.data 
    val f3 = (packageJSDependencies in Compile in frontend).value 
    Seq(f1, f1SourceMap, f2, f3) 
} 

、どこでもin Compileを避けるために、あなたはinConfig(Compile)を使用することができます。

inConfig(Compile)(Seq(
    resourceGenerators += Def.task { 
    val f1 = (fastOptJS in frontend).value.data 
    val f1SourceMap = f1.getParentFile/(f1.getName + ".map") 
    val f2 = (packageScalaJSLauncher in frontend).value.data 
    val f3 = (packageJSDependencies in frontend).value 
    Seq(f1, f1SourceMap, f2, f3) 
    } 
)) 
+1

おかげで、それが働きました。それでも、プラグインがパスを使っているのではなく、その場所をsbtキーとして提供できるのであれば、より安全だと思います。 –

+1

[機能要求をファイルする](https://github.com/scala-js/scala-js/issues)に気軽に。 – sjrd

関連する問題