发布
社区首页 >问答首页 >SBT运行中的Scala.js传递命令行参数

SBT运行中的Scala.js传递命令行参数
EN

Stack Overflow用户
提问于 2017-03-24 11:49:42
回答 3查看 499关注 0票数 1

在使用sbt run运行应用程序时,在开发普通JVM应用程序时,我可以使用run <args>传递命令行参数。当我对Scala.js做同样的尝试时,我会得到一个错误“没有有效的解析器可用”。在尝试runMain变体(如runMain Main.main arg )时,错误是“预期的非空格字符”,箭头指向Main.main后面。

在从SBT运行Scala.js / Node.js应用程序时,有什么方法将参数传递给它吗?

(我使用的是Scala.js 0.6.15)。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-03-24 13:09:04

不,没有,因为JavaScript没有命令行参数的概念。Node.js是这样做的,但只有在命令行启动时才会这样做,恐怕sbt插件不支持这个用例。

请随时提交功能请求。我不确定它是否能被接受,但我们最终可以调查它。

票数 2
EN

Stack Overflow用户

发布于 2017-03-30 10:55:12

可以定义调用node.js的自定义任务,并使用SBT解析器解析参数。将其添加到build.sbt中:

代码语言:javascript
代码运行次数:0
复制
import complete.DefaultParsers._

lazy val runa = inputKey[Unit]("Run app with arguments")

runa := {
  (fastOptJS in Compile).value // build it first
  val args: Seq[String] = spaceDelimited("<arg>").parsed
  val npmRun = "node index.js" + args.map("\"" + _ + "\"").mkString(" "," ","")
  npmRun.!
}

您还需要在项目根目录中创建一个文件index.js,其中包含如下内容:

代码语言:javascript
代码运行次数:0
复制
require("./target/scala-2.12/xxxx-jsdeps.js");

require("./target/scala-2.12/xxxx-fastopt.js");
票数 0
EN

Stack Overflow用户

发布于 2022-06-29 19:03:00

在此期间,出现了一个图书馆来解决以下问题:https://ben.kirw.in/decline/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42998773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档