Gradle не испускает kotlin.js
Я пытаюсь скомпилировать свое приложение Kotlin и набор библиотек Kotlin для JavaScript. У меня это работает хорошо, но когда я пытаюсь запустить его, он не может найти kotlin.js
,
Так что здесь происходит? Когда я компилирую, используя IDEA (вместо Gradle), он выводит kotlin.js
просто хорошо. Я попытался сделать свой скрипт сборки более похожим на пример, который я нашел, но это не скомпилирует...
Вот ссылка на код и рассматриваемый проект: https://github.com/BlueHuskyStudios/Decision-Cruncher/blob/SO/q/53582651/1/build.gradle
1 ответ
Здесь вы можете найти фрагмент кода для извлечения всех файлов.js из библиотек Kotlin/JS:
task assembleWeb(type: Sync) {
configurations.compile.each { File file ->
from(zipTree(file.absolutePath), {
includeEmptyDirs = false
include { fileTreeElement ->
def path = fileTreeElement.path
path.endsWith(".js") && (path.startsWith("META-INF/resources/") ||
!path.startsWith("META-INF/"))
}
})
}
from compileKotlin2Js.destinationDir
into "${projectDir}/web"
dependsOn classes
}
assemble.dependsOn assembleWeb
Это сработало только для меня. unzip
по какой-то причине не работал
task assembleWeb() {
configurations.implementation.setCanBeResolved(true)
configurations.implementation.each { File file ->
if (file.path.indexOf('kotlin-stdlib-js') >= 0) {
exec {
workingDir "$projectDir/web"
standardOutput = new ByteArrayOutputStream()
commandLine "7z", "e", file.absolutePath, "kotlin.js", "-aos", "-r"
}
}
}
dependsOn classes
}
assemble.dependsOn assembleWeb
Быть в курсе "-aos"
парам. Этот флаг предотвратит перезапись существующего файла
Для любых других, борющихся в будущем, у меня была следующая проблема:
Начальный проект IntelliJ Kotlin/JS был сгенерирован в файле Gradle:
implementation "org.jetbrains.kotlin:kotlin-stdlib-js"
который должен быть этим, чтобы получить kotlin.js
файл
compile "org.jetbrains.kotlin:kotlin-stdlib-js"