node.js - 获取 Kotlin/JS 节点进程的命令行参数
问题描述
我有一个非常基本的 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.js 进程参数目前没有被翻译成 Kotlin 的主要函数参数——这是团队知道的事情,你可以在“KJS / NodeJS: process.argv[2..] 应该翻译”中关注它的进展Kotlin 的 YouTrack 上的主函数 args问题。
作为一种解决方法,您可以直接访问process
's argv
,使用 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
}
推荐阅读
- python - 沿自己的路径移动点
- javascript - 循环使用 JS 从 Chrome 控制台上的 HTML 列表中获取信息
- python - 按特定列值对数据框进行分组
- angular - ng-disabled 不会禁用日期选择器
- javascript - 如何在javascript中查找数组的长度
- sql - 从多个子表中删除行后从父表中动态删除行
- mongodb - docker-composed 用 mongoEngine 构建烧瓶,尝试连接但返回 pymongo 错误?
- powershell - powershell [System.IO.File]::WriteAllLines 不工作
- javascript - 执行 UI 块时抛出异常:[NSNull doubleValue]: unrecognized selector sent to instance 0x204329c00
- r - 在日期范围内并基于 R 中另一列的值将数据框的某些列的值相乘