You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin/JS在Docker中构建失败:package.json反斜杠路径问题

解决Kotlin多平台项目Docker构建中package.json路径分隔符问题

问题根源

Windows本地构建时,Kotlin/JS编译器生成的package.json使用Windows风格反斜杠路径,而Docker基于Linux环境,无法识别这些路径,导致构建失败。

解决方案

1. 强制Kotlin/JS生成正斜杠路径

在Kotlin多平台模块的构建脚本(build.gradle.kts或build.gradle)中,配置Kotlin编译器使用正斜杠作为路径分隔符,覆盖系统默认行为:

Kotlin DSL(build.gradle.kts)

kotlin {
    js(IR) {
        // 可根据实际目标调整为LEGACY等
        compilations.all {
            kotlinOptions {
                filePathSeparator = "/"
            }
        }
        // 若只需针对主编译配置,可替换为:
        // compilations["main"].kotlinOptions.filePathSeparator = "/"
    }
}

Groovy DSL(build.gradle)

kotlin {
    js(IR) {
        compilations.all {
            kotlinOptions {
                filePathSeparator = "/"
            }
        }
    }
}

该配置会让Kotlin编译器生成的所有路径统一使用正斜杠,保证跨平台环境的兼容性。

2. 清理Docker构建上下文,避免Windows文件污染

在项目根目录创建.dockerignore文件,排除本地生成的构建产物和依赖目录,确保Docker构建环境干净:

build/
node_modules/
.gradle/
*.iml
.idea/

这样可以避免Windows环境下生成的带反斜杠路径的文件被带入Docker构建流程,防止残留文件或缓存引发的异常。

3. 升级Kotlin版本(可选)

路径分隔符的跨平台兼容问题在Kotlin 1.7及以上版本中已被官方修复。如果项目兼容性允许,将Kotlin版本升级到1.7.x或更高,可从根源上解决该问题,无需额外配置。

内容的提问来源于stack exchange,提问作者Lime

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 22:01:04