2017-03-24 19 views
0

通常のJVMアプリケーションを開発しているときにsbt runを使用してアプリケーションを実行するときは、run <args>を使用してコマンドライン引数を渡すことができます。 Scala.jsで同じことをしようとすると、「有効なパーサーがありません」というエラーが表示されます。 runMainのような変形をrunMain Main.main argのようにしようとすると、矢印は「Main.main」のすぐ後ろを指すように、「空白以外の文字が必要です」というエラーが表示されます。Scala.js - SBTからコマンドライン引数を渡す

SBTから実行するときに、Scala.js/Node.jsアプリケーションに引数を渡す方法はありますか?

(Scala.js 0.6.15を使用しています)

答えて

2

JavaScriptはコマンドライン引数の概念を持たないため、いいえ、ありません。 Node.jsは、コマンドラインから起動し、そのユースケースがsbtプラグインでサポートされていない場合に限り、私は恐れます。

フィーチャーリクエストを登録してください。私はそれが適応できるかどうかはわかりませんが、最終的にそれを調べることができます。

0

node.jsを呼び出すカスタムタスクを定義し、SBTパーサーを使用して引数を解析することができます。 build.sbtにこれを追加します。

require("./target/scala-2.12/xxxx-jsdeps.js"); 

require("./target/scala-2.12/xxxx-fastopt.js"); 

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を作成する必要があります

関連する問題