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

Kotlin多平台执行jsRun任务报cli.isMultipleCompiler不存在错误

问题根因

执行jsRun任务抛出TypeError: cli.isMultipleCompiler is not a function错误,是Kotlin/JS Gradle插件默认绑定的webpack-cli 4.9.0版本的已知Bug:该版本webpack-cli与配套的@webpack-cli/serve插件API不兼容,缺失isMultipleCompiler方法,问题仅触发于webpack dev server启动环节,因此普通编译、Ktor后端服务运行都不会受影响。

解决步骤

Kotlin/JS构建体系原生支持自定义webpack相关npm依赖版本,不要手动修改build/js目录下自动生成的package.json(该文件每次构建都会被覆盖,修改无效),按以下步骤操作即可:

  • 打开项目根目录下的Gradle配置文件,在JS目标的配置块中添加版本强制指定规则,将webpack-cli版本锁定为修复了该Bug的4.10.0版本:
    如果使用Kotlin DSL(build.gradle.kts),配置如下:
    kotlin {
        js(IR) {
            // 保留原有的browser、二进制产物输出等配置,无需改动
            browser {
                // 保留原有的webpack自定义配置
            }
            // 添加以下版本指定配置
            node {
                versions.webpackCli.version = "4.10.0"
            }
        }
    }
    
    如果使用Groovy DSL(build.gradle),配置如下:
    kotlin {
        js(IR) {
            // 保留原有的browser、二进制产物输出等配置,无需改动
            browser {
                // 保留原有的webpack自定义配置
            }
            // 添加以下版本指定配置
            node {
                versions.webpackCli.version = "4.10.0"
            }
        }
    }
    
  • 执行清理命令清除旧构建缓存和残留依赖:
    Linux/macOS系统执行:
    ./gradlew clean
    
    Windows系统执行:
    gradlew.bat clean
    
  • 重新执行jsRun任务,即可正常启动webpack dev server。

注:如果后续遇到其他webpack生态依赖的版本兼容问题,也可以通过相同的node.versions配置块指定对应依赖版本,支持配置的项包括webpack、webpack-cli、webpack-dev-server等Kotlin/JS默认集成的npm构建依赖,不要跨大版本升级(比如直接升到webpack-cli 5.x),否则会和Kotlin Gradle插件内置的webpack配置逻辑产生新的兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 00:33:22