正在获取Kotlin/JS Node进程的命令行参数



我有一个非常基本的Kotlin/JS应用程序,通过Gradle插件瞄准Node.JS。我想在执行进程(使用node build/js/packages/node-so-repro/kotlin/node-so-repro.js myArgument(时读取传递给进程的命令行参数。

运行程序时,我试图使用以下代码访问args的编号:

fun main(args: Array<String>) {
console.log(args.size)
}

但是,即使添加命令行参数,此代码也始终返回0

我没有对向导生成的构建文件进行太多更改:

kotlin {
js {
nodejs {
binaries.executable()
}
}
}

如果args不起作用,我如何访问Kotlin/JS Node应用程序中的命令行参数?

Node.js进程参数目前没有被转换为Kotlin的主要函数参数——这是团队所知道的,您可以在"KJS/NodeJS:process.argv[2..]应该被翻译成主函数args";Kotlin YouTrack上的问题。

作为一种变通方法,您可以直接访问processargv,使用slice删除node和您的程序路径:

external val process: dynamic
fun main(args: Array<String>) {
val argv = process.argv.slice(2) as Array<String>;
println(argv.joinToString("; ")) // prints all arguments semi-colon separated
}

最新更新