获取 Kotlin/JS 节点进程的命令行参数
Getting command line arguments for Kotlin/JS Node process
我有一个非常基本的 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)
}
但是,此代码总是 returns 0
,即使我添加命令行参数也是如此。
我没有对向导生成的构建文件进行太多更改:
kotlin {
js {
nodejs {
binaries.executable()
}
}
}
如果 args
不起作用,我如何在 Kotlin/JS Node 应用程序中访问命令行参数?
Node.js 进程参数当前未被转换为 Kotlin 的主要函数参数——这是团队知道的事情,您可以在 Kotlin 的 YouTrack 上的 "KJS / NodeJS: process.argv[2..] should be translated to main function args" 问题中关注这方面的进展.
作为解决方法,您可以直接访问 process
的 argv
,使用切片删除 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
}
我有一个非常基本的 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)
}
但是,此代码总是 returns 0
,即使我添加命令行参数也是如此。
我没有对向导生成的构建文件进行太多更改:
kotlin {
js {
nodejs {
binaries.executable()
}
}
}
如果 args
不起作用,我如何在 Kotlin/JS Node 应用程序中访问命令行参数?
Node.js 进程参数当前未被转换为 Kotlin 的主要函数参数——这是团队知道的事情,您可以在 Kotlin 的 YouTrack 上的 "KJS / NodeJS: process.argv[2..] should be translated to main function args" 问题中关注这方面的进展.
作为解决方法,您可以直接访问 process
的 argv
,使用切片删除 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
}