gpt4 book ai didi

scala - 如何使用 resourceGenerators 复制 Scala.js 源映射?

转载 作者:行者123 更新时间:2023-12-04 15:09:22 26 4
gpt4 key购买 nike

我正在使用 resourceGenerators sbt 复制 key fastOptJs - 使用时生成的 .js 文件 products , 像这样:

(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 中运行以下命令,我可以看到生成文件的路径:
> 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

同样,我可以很容易地看到 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 位置的任务/ key 。文件。我尝试查看插件源,但找不到。有没有办法做到这一点而不诉诸于在 build.sbt 中创建手动映射? ?

最佳答案

Scala.js 生成的源映射总是具有对应的 .js 文件的名称 + ".map" .所以你可以找到与 f1 相关的那个与 f1.getParentFile / (f1.getName + ".map") .

顺便说一句,没有新版本应该使用 <+= .比较好理解+=应该改用:

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)
}
))

关于scala - 如何使用 resourceGenerators 复制 Scala.js 源映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35958078/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com