我有一个要导出的Kotlin JS项目,因此可以在非Kotlin React应用程序中使用。
我尝试过的事情(假设模块称为exportedlib
):
gradlew compileKotlinJs
。然后build/js/packages/exportedlib/kotlin/exportedlib.js
,我将其复制到React应用程序并将其导入import exportedlib from './exportedlib'
App.js中。
当npm start
我编译时,会出现以下错误消息:Module not found: Can't resolve 'kotlin'
build/js/packages_imported/kotlin/1.3.72/kotlin.js
导入到了React应用程序中。然后我收到错误消息:
./src/kotlin.js
Line 2:39: 'define' is not defined no-undef
gradlew browserDistribution
。然后我从npm得到这些错误消息:
./src/exportedlib.js
Line 1:1: Expected an assignment or function call and instead saw an expression no-unused-expressions
Line 1:112: 'define' is not defined no-undef
Line 1:123: 'define' is not defined no-undef
Line 1:500: Expected an assignment or function call and instead saw an expression no-unused-expressions
// ... a lot of other "Expected an assignment or function call and instead saw an expression" error messages
有人可以帮我导出Kotlin JS库,以便可以在React应用程序中使用它吗?
这是我的build.gradle:
plugins {
id 'org.jetbrains.kotlin.js' version '1.3.72'
}
repositories {
mavenCentral()
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-js"
testImplementation "org.jetbrains.kotlin:kotlin-test-js"
}
kotlin.target.nodejs { }
// added as above didn't work
kotlin.target.browser { }
compileKotlinJs.kotlinOptions.moduleKind = "commonjs"
更新资料
vanyochek的答案在与一起导出时对我有效./gradlew compileProductionExecutableKotlinJs
,但仅适用于带有实验性IR后端的Kotlin 1.4 M2。
Kotlin 1.3的任何解决方案将不胜感激。
您可以尝试使用1.4-M2
Kotlin和IR后端的版本。您需要更改build.gradle
文件:
plugins {
id 'org.jetbrains.kotlin.js' version '1.4-M2'
}
repositories {
mavenCentral()
maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-js"
testImplementation "org.jetbrains.kotlin:kotlin-test-js"
}
kotlin {
js(IR) {
useCommonJs()
browser {}
nodejs {}
binaries.executable()
compilations.all {
kotlinOptions.moduleKind = "commonjs"
}
}
}
和settings.gradle:
pluginManagement {
repositories {
maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
mavenCentral()
maven { url 'https://plugins.gradle.org/m2/' }
}
}
rootProject.name = 'exportedlib'
编译完JS之后,只需将其添加exportedlib.js
到您的React项目中即可。
注意:Kotlin1.4-M2
和IR后端不稳定。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句