LINUX.ORG.RU

React in production apps

 ,


2

3

Доброго времени суток. Хотел бы узнать есть ли люди пишущие приложения на React на коммерческой основе, приложения которые уже работают на production. Возник вопрос следующего плана: я изучаю React и Flux в данный момент, смотрю пару видео используется babel, webpack и возможности es6, webpack подгружает модули и делает min версию основного скрипта, и я немного был обескуражен, когда увидел что при небольших объемах моего приложения, min файл насчитывает 19 000 строк кода, я понимаю что там все зависимости и все такое, но я просто не думаю, что это будет хорошим решением отдавать пользователю такой вот файл, и вот интересно какие инструменты вы используете, чтобы писать на React и в то же время не иметь такие огромные файлы.



Последнее исправление: Berdin (всего исправлений: 1)

19 тыщ строк это сколько в байтах?

zz ★★★★
()

Я собираю с помощью gulp и browserify. Первый — vendor бандл для библиотек, второй — app, собственно для самого приложения. Как правило, размер vendor бандла в не сжатом и не минифицированном виде занимает почти пару мегабайт. С помощью UglifyJS удаётся сжать его до одного. + ещё gzip сжатие по максимуму позволяет уменьшить размер до 300кб. Размер приложения не очень велик всего несколько сотен кб, сжимающихся до нескольких десятков.

Можно пойти дальше и запилить несколько бандлов, которые к тому же будут грузиться по необходимости. И webpack и browserify позволяют такое провернуть. Что делать конкретно, гугли. Меня, в принципе, всё пока устраивает (потому что использую в основном в личных проектах, да в каких-нибудь админках :3).

Kilte ★★★★★
()

не думаю, что это будет хорошим решением отдавать пользователю такой вот файл

Метровые банера никого не смущают, а скрипт в 20 килострок - ужас-ужас.

p.s. use Last-Modified, Expires, If-Modified-Since . Один раз загрузил - весь год свободен.

r_asian ★☆☆
()
Ответ на: комментарий от r_asian

Это да, но если не я отвечаю за настройку сервера и пишу лишь клиентское приложение, то не так уж легко это будет сделать.

Berdin
() автор топика
Ответ на: комментарий от Berdin

Вообще-то заголовки, отвечающие за кеширование контента на веб-клиенте отдаёт веб-приложение. И если ЯП на котором вы пишете серверную часть этого не умеет - то зачем нужен такой ЯП.

r_asian ★☆☆
()
Ответ на: комментарий от Berdin

nginx по умолчанию умеет отдавать эти заголовки для статики. В сетевой инспектор браузера посмотри на 304-ые ответы.

Deleted
()

но я просто не думаю, что это будет хорошим решением отдавать пользователю такой вот файл

Этот файл отдается один единственный раз и не превосходит по размеру картинку.

anonymous
()

Это ты еще размеров css, нагенерированных из всяких less в больших проектах не видел. Но так как по размеру это всё часто не больше какой-нибудь фоновой картинки и отдаётся только один раз, то можно особо не волноваться.

SOmni ★★
()

min файл насчитывает 19 000 строк кода

Скажи спасибо что не 50000, идеологически предлагается забивать на размер файлика со скриптами.

ya-betmen ★★★★★
()
Последнее исправление: ya-betmen (всего исправлений: 1)

Вот тебе ссылка на проект-шаблон на ES6, React, Webpack, Baobab, со сборкой, разбитием на бандлы, есть hot-reload компонентов, стилей и т.п. Эта архитектура работает на проде уже почти год, полет нормальный. Изучай, пользуйся. Лицензия MIT:

https://github.com/slmgc/react-baobab-template

slmgc
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.