Size: a a a

2019 December 14

ЛЛ

Логичный Лесник in Kotlin JS
Alexander Nozik
Есть штатный dce, который работает гораздо лучше, чем Closure compiler. Но он сейчас не очень дружит с мультиплатформый. Все будет полноценно в 1.3.70
А как вообще собрать JS код в отдельный бандл, пожав его по максимуму? (Использую IDEA)
источник

AN

Alexander Nozik in Kotlin JS
Логичный Лесник
А как вообще собрать JS код в отдельный бандл, пожав его по максимуму? (Использую IDEA)
Исполльзовать лучше градл, иначе будет боль. Отдельный бандл собирается и минифицируется при помощи примеров из документации (по-моему в hands-on все было, сейчас гляну)
источник

AN

Alexander Nozik in Kotlin JS
Логичный Лесник
А как вообще собрать JS код в отдельный бандл, пожав его по максимуму? (Использую IDEA)
источник

AN

Alexander Nozik in Kotlin JS
Единственное, что сейчас не работает полноценно - это dce. И то вроде он для чистого JS работал
источник

ЛЛ

Логичный Лесник in Kotlin JS
Спасибо, сейчас почитаю.
источник

ЛЛ

Логичный Лесник in Kotlin JS
По итогу:
1. Заработал dce, который уменьшил kotlin.js с 51145 до 2948 несжатого кода.
2. Как запустить минификатор вообще не понятно. Судя по всему нужно как-то по особому настраивать ноду.
источник

AN

Alexander Nozik in Kotlin JS
Логичный Лесник
По итогу:
1. Заработал dce, который уменьшил kotlin.js с 51145 до 2948 несжатого кода.
2. Как запустить минификатор вообще не понятно. Судя по всему нужно как-то по особому настраивать ноду.
Оно по умолчанию минифицируется.
источник

AN

Alexander Nozik in Kotlin JS
соурс мапы надо отключать. Они по-умолчанию включены
источник

ЛЛ

Логичный Лесник in Kotlin JS
Alexander Nozik
Оно по умолчанию минифицируется.
Неа, не минифицируется:
DCE does not perform minification (uglification) of your code by removing unnecessary whitespaces and shortening identifiers. You should use existing tools, like UglifyJS or Google Closure Compiler for this purpose.

https://kotlinlang.org/docs/reference/javascript-dce.html
источник

AN

Alexander Nozik in Kotlin JS
Логичный Лесник
Неа, не минифицируется:
DCE does not perform minification (uglification) of your code by removing unnecessary whitespaces and shortening identifiers. You should use existing tools, like UglifyJS or Google Closure Compiler for this purpose.

https://kotlinlang.org/docs/reference/javascript-dce.html
После DCE по-умолчанию включается вебпаковская минификация. Вы можете посмотреть сгенеренный файл
источник

AN

Alexander Nozik in Kotlin JS
Идентификаторы по-моему не пережимаются, но пробелы точно вырезаются. Я пробовал результат прогонять через Closure Compiler, ничего особо не дало.
источник

AN

Alexander Nozik in Kotlin JS
Если файл большой, значит соурс мапы не вырезаны
источник

ЛЛ

Логичный Лесник in Kotlin JS
Окей, а как это сделать?
На данный момент грэдл-файл такой:
plugins {
   id 'org.jetbrains.kotlin.js' version '1.3.60'
}

group 'org.example'
version '1.0-SNAPSHOT'

repositories {
   mavenCentral()
}

dependencies {
   implementation "org.jetbrains.kotlin:kotlin-stdlib-js"
   testImplementation "org.jetbrains.kotlin:kotlin-test-js"
}

apply plugin: 'kotlin-dce-js'

kotlin.target.browser { }
источник

ЛЛ

Логичный Лесник in Kotlin JS
источник

AN

Alexander Nozik in Kotlin JS
Сейчас посмотрю.
источник

AN

Alexander Nozik in Kotlin JS
tasks{
   val jsBrowserWebpack by getting(KotlinWebpack::class) {
       sourceMaps = false
   }
}
источник

AN

Alexander Nozik in Kotlin JS
это kts, в груви проще
источник

ЛЛ

Логичный Лесник in Kotlin JS
Alexander Nozik
tasks{
   val jsBrowserWebpack by getting(KotlinWebpack::class) {
       sourceMaps = false
   }
}
Спасибо! сейчас попробую.
источник

ЛЛ

Логичный Лесник in Kotlin JS
Alexander Nozik
это kts, в груви проще
А можете подсказать как это сделать в груви? Я просто впервые работаю с грэдлом.
источник

AN

Alexander Nozik in Kotlin JS
Щас, я уже тоже давно с груви не работал. Забыл все.
источник