如何在Kotlin多平台/JS项目中给Node.js传递自定义命令行参数?
Kotlin多平台JS测试配置Node.js自定义运行参数
这个需求完全可行,通过Gradle Kotlin JS DSL可以直接为Node.js测试运行器添加自定义命令行参数,包括你需要的--expose-gc标志。
具体实现方式
以下是两种常用的配置方式,根据你的项目结构选择即可:
方式1:在JS目标的测试块中直接配置
如果你的项目在Kotlin多平台块中定义了JS目标,可以直接在test块内指定Node.js运行器的参数:
kotlin { js(IR) { nodejs() // 启用Node.js目标 binaries.executable() test { useNodeJs { // 添加Node.js运行时参数 nodeOptions.add("--expose-gc") } } } }
方式2:全局匹配所有JS测试任务
如果需要为所有JS测试任务统一配置参数,可以通过任务类型匹配的方式设置:
tasks.withType<org.jetbrains.kotlin.gradle.targets.js.testing.node.KotlinNodeJsTest> { nodeOptions.add("--expose-gc") }
验证配置生效
配置完成后,运行JS测试任务时,Gradle会自动启动带有--expose-gc参数的Node.js进程。此时你可以在测试代码中通过以下方式触发垃圾回收:
import kotlin.js.ExperimentalJsExport import kotlin.js.JsName @OptIn(ExperimentalJsExport::class) @JsName("gc") external fun gc() // 在测试中调用 @Test fun testGcTrigger() { gc() // 执行后续断言逻辑 }
内容的提问来源于stack exchange,提问作者Tom
相关产品推荐
相关产品推荐

