Tengo un proyecto multiplataforma de Kotlin con JVM y JS. Al ejecutar la tarea jsRun gradle para iniciar el servidor webpack, falla con el siguiente error:
Waiting for changes to input files of tasks... (ctrl-d then enter to exit) [webpack-cli] TypeError: cli.isMultipleCompiler is not a function [webpack-cli] TypeError: cli.isMultipleCompiler is not a function at Command.<anonymous> (C:\MyProject\build\js\node_modules\@webpack-cli\serve\lib\index.js:146:35) at async Promise.all (index 1) at async Command.<anonymous> (C:\MyProject\build\js\node_modules\webpack-cli\lib\webpack-cli.js:1687:7)La compilación se realiza correctamente y puedo servir el proyecto a través de Ktor, el problema parece ser el servidor de desarrollo webpack.
El package.json que genera el complemento kotlin gradle parece usar webpack-cli 4.9.0 .
{ "name": "MyProject-client", "version": "1.0.0", "main": "kotlin/MyProject-client.js", "devDependencies": { "sass-loader": "13.0.0", "sass": "1.53.0", "style-loader": "3.3.1", "css-loader": "6.7.1", "resolve-url-loader": "5.0.0", "webpack": "5.57.1", "webpack-cli": "4.9.0", "format-util": "1.0.5", "source-map-loader": "3.0.0", "webpack-dev-server": "4.3.1", "dukat": "0.5.8-rc.4" }, "dependencies": {}, "peerDependencies": {}, "optionalDependencies": {}, "bundledDependencies": [] } Esto dice que es un error en webpack-cli 4.9.0 y sugiere actualizar a 4.10.0 . No sé si/cómo se pueden cambiar las versiones del paquete web en Kotlin/JS.
Esto debe agregarse a build.gradle.kts en el proyecto afectado para forzar la versión webpack-cli . Esta es una solución alternativa hasta que el equipo de Kotlin actualice la versión codificada.
// Fixes webpack-cli incompatibility by pinning the newest version. rootProject.extensions.configure<org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension> { versions.webpackCli.version = "4.10.0" }