Size: a a a

2021 May 30

AN

Alexander Nozik in Kotlin JS
А много у кого два js таргета? Обычно есть чистый жс и мпп.
источник

SR

Sergey Rostov in Kotlin JS
раньше было нельзя, не знаю сделали ли hmpp для js. но вобще это возможно, и когда то были планы сделать отедльные таргеты browser и nodeJs например. префикс js в этом случае - это название таргета.

я к тому, что и сейчас плагин можно сделать универсальным, чтобы он обходил таргеты в kotlin. api для этого есть.
источник

AN

Alexander Nozik in Kotlin JS
А я не предлагаю его убрать. Я предлагаю его добавить в чистый js
источник

SR

Sergey Rostov in Kotlin JS
просто захардкоив “js” вы конечно решите вашу конкретную проблему, но общая проблема только усугубится
источник

SR

Sergey Rostov in Kotlin JS
я тоже не предлгаю его убрать 🙂 я предлагаю пофиксить плагин
источник

AN

Alexander Nozik in Kotlin JS
Есть вариант вытягивать имя жс таргета из котлин плагина. Правда там все равно возникает проблема с тем, что надо делать отдельную обработку двух разных плагинов.
источник

AN

Alexander Nozik in Kotlin JS
как?
источник

SR

Sergey Rostov in Kotlin JS
как уже писал выше: обходить таргеты. api для этого есть. сейчас точно код скажу
источник

AN

Alexander Nozik in Kotlin JS
Типичная задача, надо достать результаты jsBrowserDistribution и куда-нибудь подпихнуть. Собственно ишью выше про это.
источник

IG

Ilya Goncharov in Kotlin JS
Теоретически можно имя таргета в сингл-таргете сделать, и имя таргета сделать тоже js
источник

SR

Sergey Rostov in Kotlin JS
> The directory could be obtained from browserProductionWebpack task
не думаю что это правильное решение. но в любом случае, если хочется просто получить таску, то для этого есть безопасный api: можно пройтись по таргетам и в каждом из них будет список нужных тасок
источник

SR

Sergey Rostov in Kotlin JS
в single-platform плагине вроде тоже есть target. @ilgonmic , подскажешь, есть?
источник

AN

Alexander Nozik in Kotlin JS
Ну я про это и говорил
источник

AN

Alexander Nozik in Kotlin JS
А какое решение правильное?
источник

SR

Sergey Rostov in Kotlin JS
ну что то типа kotlin.targets.filter { it.platform == js }.forEach { ... }
источник

SR

Sergey Rostov in Kotlin JS
я не помню точного api
источник

SR

Sergey Rostov in Kotlin JS
этот код будет работать в случае single platform, и текущей mpp, и в будущей, когда будут возможны несколько js таргетов
источник

IG

Ilya Goncharov in Kotlin JS
Таргет есть, да
Я не очень помню, что там по именам
Вполне возможно, у нас стоят ифы на проверку сингл платформа или мпп, и в зависимости от этого берет имя или не берет его
источник

AN

Alexander Nozik in Kotlin JS
Ну с этим можно жить. Но во-первых, из таргета еще надо достать таску ( там имя или сама таска лежит)? из таски надо еще достать аутпуты. В общем, для человека без опыта в градле - целая история
источник

SR

Sergey Rostov in Kotlin JS
там должно лежать все в более удобном виде, не обязательно из таски доставать. таска - это все таки очень низкоуровневая вещь. это печально что в гредле все через них дастается. вообще в самом плагине все работает наоборот: есть модель, и там есть все данные. уже из этих данных строятся таски. поэтому правильнее использовать модель в качестве источника данных
источник