构建失败,并显示错误消息:
./ output.js模块中未找到错误:错误:无法解析“ common” 在'C:\ Users \ User \ Documents \ MultiPlatformTodo \ web \ web'@ ./output.js中 340:91-108
./ output.js模块中未找到错误:错误:无法解析'kotlin' 在'C:\ Users \ User \ Documents \ MultiPlatformTodo \ web \ web'@ ./output.js中 340:18-35
./output.js中的ERROR找不到模块:错误:无法解决 'C:\ Users \ User \ Documents \ MultiPlatformTodo \ web \ web'中的'kotlin-react' @ ./output.js 340:37-60
./output.js中的ERROR找不到模块:错误:无法解决 'kotlin-react-dom'在 'C:\ Users \ User \ Documents \ MultiPlatformTodo \ web \ web'@ ./output.js 340:62-89
./output.js中的ERROR找不到模块:错误:无法解决 'kotlinx-coroutines-core'在 'C:\ Users \ User \ Documents \ MultiPlatformTodo \ web \ web'@ ./output.js 340:110-144
./output.js中的ERROR找不到模块:错误:无法解决 'kotlinx-html-js'在 'C:\ Users \ User \ Documents \ MultiPlatformTodo \ web \ web'@ ./output.js 340:146-172
失败:构建失败,并出现异常。
- 出了什么问题:任务':web:webpack-bundle'的执行失败。 节点webpack.js失败(退出代码= 2)
Js模块build.gradle
的定义如下:
apply plugin: 'org.jetbrains.kotlin.frontend'
apply plugin: 'kotlin2js'
kotlinFrontend {
npm {
dependency("react", "16.6.0")
dependency("react-dom", "16.6.0")
dependency("@material-ui/core", "1.4.3")
}
sourceMaps = true
webpackBundle {
bundleName = "mpnotes"
contentPath = file('src/main/web')
}
}
dependencies {
implementation project(':common')
implementation "org.jetbrains.kotlin:kotlin-stdlib-js:$kotlin_version"
implementation "org.jetbrains.kotlinx:kotlinx-html-js:0.6.11"
implementation "org.jetbrains:kotlin-react:16.6.0-pre.61-kotlin-1.3.0"
implementation "org.jetbrains:kotlin-react-dom:16.6.0-pre.61-kotlin-1.3.0"
}
compileKotlin2Js {
kotlinOptions {
outputFile = "${projectDir}/web/output.js"
metaInfo = true
moduleKind = "commonjs"
sourceMap = true
}
}
和settings.gradle
:
enableFeaturePreview('GRADLE_METADATA')
rootProject.name = 'MultiPlatformTodo'
include 'android'
include 'web'
include 'common'
这是common
模块的内容:
apply plugin: 'kotlin-multiplatform'
kotlin {
targets {
fromPreset(presets.jvm, 'jvm')
fromPreset(presets.js, 'js')
}
sourceSets {
commonMain {
dependencies {
implementation 'org.jetbrains.kotlin:kotlin-stdlib-common'
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core-common:$coroutines_version"
}
}
commonTest {
dependencies {
implementation "org.jetbrains.kotlin:kotlin-test-common"
implementation "org.jetbrains.kotlin:kotlin-test-annotations-common"
}
}
jvmMain {
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version"
}
}
jsMain {
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-js:$kotlin_version"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core-js:$coroutines_version"
}
}
}
}
kotlin {
experimental {
coroutines "enable"
}
}
答案 0 :(得分:1)
我看到两个可能的问题。
第一个是,您应该使用多平台gradle插件而不是kotlin2js
,即kotlin-multiplatform
,它是较新的并且将提供更多的长期支持,或者是kotlin-platform-js
,这可能是可以轻松替换当前设置。
另一个问题是第implementation project(':common')
行。这告诉gradle您将普通模块作为js依赖项使用,因为这是一个js项目。对于kotlin-platform-js
,您应该改用expectedBy project(':common')
将其链接为公共依赖项。对于kotlin-multiplatform
,您需要对依赖项配置进行大量更改。您可以查看一些详细信息here
答案 1 :(得分:0)
我知道有点晚了,但是如果您在apply plugin: 'kotlin-dce-js'
中添加build.gradle
,那就很好了