Привет. Сделал небольшой Hello world на Kotlin/JS ...
# russian
d
Привет. Сделал небольшой Hello world на Kotlin/JS Kotlin MPP 1.3.40, JS Browser. Настроил DCE и webpack минификацию, итого получился JS файл размером 56KB. Исходники: https://github.com/avdim/kotlin-mpp-js-browser Как мне кажется получилось сложновато. Пришлось пошаманить с gradle чтобы встроить таску runDceJsKotlin, а также сделал кастомный webpack конфиг (webpack.config.d/production.js) Буду рад ответить в треде на любые вопросы, а также жду замечаний и предложений по улучшению... Let's Kotlin! @h0tk3y @snrostov @Ilya Goncharov [JB]
👍 5
i
Есть похожий проект, с чистым Kotlin/js, не мультиплатформенный Аналогично подключал production мод и dce https://github.com/ilgonmic/kotlinjs-multi-module Есть пример wa, чтобы на винде работало
d
Спасибо. Я как раз на твой проект смотрел когда свой делал )
i
Тикет кстати по поводу webpack мода создавал https://youtrack.jetbrains.com/issue/KT-32283 Может в скором времени посмотрю сам, там кажется, что нетрудно и недолго делать Если конечно у команды не другие планы на этот счёт
👍 1
Не сталкивался с проблемами при hot reload? У меня при запуске run в continuous режиме, после каждого обновления летят ошибки https://youtrack.jetbrains.com/issue/KT-32273
d
@snrostov @h0tk3y Какое будущее у kotlin-dce-js плагина? Планируется ли как то улучшать его взаимодействие с mpp плагином?
@Ilya Goncharov [JB] Кстате у меня получилось запустить JS тесты, для этого нужно прописать в webpackTask { report = true }
С hot reload я пока мало эксперементировал, с такой проблемой не сталкивался
s
Может в скором времени посмотрю сам, там кажется, что нетрудно и недолго делать
Если конечно у команды не другие планы на этот счёт
Сами опции в таску добавлять безусловно нужно. Но хочеться чтобы пользователь вручную их не настраивал, чтобы из коробки было два режима сборки - debug и production. Это для нейтива тоже актаульно. Думаем как сделать более мнее универсально в MPP DSL-e.
👍 1
Не сталкивался с проблемами при hot reload? У меня при запуске run в continuous режиме, после каждого обновления летят ошибки
Это известная проблема. К сожалению сейчас так работает инкрементальная компиляция: перед компиляцией js файлы удаляются. Думаем как починить: либо поправить компиляцию, либо написать плагинчик к вебпаку который будет говорить когда нужно перечитвать файлы
👍 1
@snrostov @h0tk3y Какое будущее у kotlin-dce-js плагина? Планируется ли как то улучшать его взаимодействие с mpp плагином?
Хочется чтобы он был включен по умолчанию в production режиме
👍 2
@Ilya Goncharov [JB] @Dima Avdeev К стате, ищем человека в Kotlin Build Tools, который будет заниматься JS-ом. Вакансия пока не опубликована, но если интересно - пишите в личку.
🤔 1
@Dima Avdeev
Copy code
tasks.withType<Kotlin2JsCompile> {
    kotlinOptions.moduleKind = "umd"
}
Это можно не делать. Начиная с 1.3.40 umd ставится по умолчанию.
👍 1
i
@snrostov
Сами опции в таску добавлять безусловно нужно. Но хочеться чтобы пользователь вручную их не настраивал, чтобы из коробки было два режима сборки - debug и production. Это для нейтива тоже актаульно. Думаем как сделать более мнее универсально в MPP DSL-e.
По идее, думал про прод для билда (browserWebpack), а для run - development Но да, в разрезе взимодействия с mpp - вопрос глубже
s
такие мысли тоже есть, но даже в этом случае, хорошо бы чтобы было так:
Copy code
build.dependsOn(buildProduction)
run.dependsOn(runDevelopment)
При этом чтобы были доступны таски
buildProduction
и
buildDevelopment
, и чтобы дефолт с
build.dependsOn(buildProduction)
можно было изменить