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"

Другие вопросы по тегам