Как разбить размер вывода JS scala.js

Существует несколько сценариев анализа пакетов веб-пакетов, которые показывают список включенных модулей вместе с их размерами. Однако Scala.js испускает один большой модуль для всего кода Scala, поэтому эти инструменты не могут его изучить.

Как автор библиотеки и конечный пользователь других библиотек Scala.js, я хочу знать, насколько различные пакеты / классы Scala влияют на размер моего пакета.

Я понимаю, что оптимизация Scala.js делает невозможным сказать, что данная библиотека весит ровно X Кб, поэтому мне интересно решение, которое рассматривает конкретный пакет.

В настоящее время лучшее, что я могу сделать, это искать "com.package.name в сгенерированном файле JS и оцените плотность индикаторов результата на полосе прокрутки, но это, очевидно, чрезвычайно неоптимально.

Итак, мой вопрос: есть ли инструменты или даже наполовину запеченные скрипты, которые могли бы улучшить то, что я делаю?

1 ответ

Наконец-то нашел хорошее решение - с правильным sbt config source-map-explorer пакет npm делает именно то, что мне нужно, основываясь на исходных картах (конечно!). Он показывает прямое влияние отдельных классов Scala на размер пакета.

Источник: Scala.js, выпуск № 3556.

Это может быть не совсем так, как вы, вероятно, хотите,

но чтобы помочь измерить приблизительный размер каждого js-файла, вы можете проверить двоичные файлы (с расширениями.sjsir после запуска такой задачи, как fastOptJS) в классах target/scala-2.1.2/, сгенерированных компилятором scalac, и скомпилировать каждый из них в JavaScript.

Для компиляции двоичного файла в javascript вы можете использовать код, приведенный в этом ответе.

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