Задать вопрос

Vue — вес проекта?

Здравствуйте.
Сделал небольшое приложение на vue с минимум функционала(вывод графика, таблицы по websocket в реалтайм), подключил несколько плагинов/библиотек:
- vuetify
- highchart
- font-awesome
- moment-timezone
- vue-moment
- moment-timezone
- vue-native-websocket
Все они нужны, ибо решают конкретные задачи)
Проект после сборки с флагом prodaction, весит аж 3mb, хотя функционала минимум, даже сайты столько не весят.
Сделал минификацию через webpack, вес уменьшился на 200kb.
На форумах пишут про асинхронные компоненты и т.п., это все понятно, но они веса не уменьшат, просто будет куча отдельных маленьких файлов, с общим весом 3mb.
Вообщем подскажите неопытному, как правильно делать сборку и подключать зависимости, чтобы для отображения нескольких иконок например, не приходилось тянуть весь font-awesome или как для вывода красивого графика через highchart, не приходилось тянуть всю либу, ибо она огромная?
  • Вопрос задан
  • 1563 просмотра
Подписаться 6 Средний 11 комментариев
Решения вопроса 1
Fragster
@Fragster
помогло? отметь решением!
Попробуй вот такую штуку: https://habr.com/ru/company/jugru/blog/342842/
Для того же moment есть приемы, которые исключат ненужные локали из сборки.
fa - прям у них на сайте инструкция для vue: https://www.npmjs.com/package/@fortawesome/vue-fon...
Опять же, можно заgzipить и получить размер раз в десять меньше.

Судя по картинке из комментария. нужно взять https://github.com/vuetifyjs/vuetify-loader
а также добавить new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/) в конфигурацию вебпака, чтобы отрезать локали moment.
с highcharts, moment-timezone и popup надо гуглить, скорее всего тоже можно срезать.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Nc_Soft
Эти 3мб гзипом ужмутся раз в 5-10.
А вообще там половина веса это highchart.
Я такие жирные либы через cdn подрубаю, не мешаю в бандл, смысла в этом нет.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы