【问题标题】:Getting command line arguments for Kotlin/JS Node process获取 Kotlin/JS 节点进程的命令行参数
【发布时间】:2021-05-22 07:56:14
【问题描述】:

我有一个非常基本的 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 kotlin-js


    【解决方案1】:

    Node.js 进程参数当前没有被转换为 Kotlin 的主要函数参数 - 这是团队知道的事情,您可以在 Kotlin 的 YouTrack 上的 "KJS / NodeJS: process.argv[2..] should be translated to main function args" 问题中关注它的进展。

    作为一种解决方法,您可以直接访问processargv,使用切片删除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
    }
    

    【讨论】:

      猜你喜欢
      • 2020-09-30
      • 1970-01-01
      • 2010-09-18
      • 2014-03-12
      • 1970-01-01
      • 1970-01-01
      • 2018-12-15
      • 2014-11-11
      相关资源
      最近更新 更多