Fullstack React.js Application boilerplate for 2016-2017 years
На данном этапе обсуждения и описание ведётся на русском языке, чтобы вам было удобней и комфортней. В ноябре всё будет переведено на английский. Благодарим за понимание.
План
- [x] 29 августа - начало работы над составом проекта
- [x] 27 октября - утверждение состава и структуры после встречи на React Moscow Meetup
- [ ] 12 января - завершение первой версии
- [ ] 15 января - перевод описания и issues на английский язык
Обращение
Итак, друзья, уже шесть часов вечера, последний понедельник лета. Давайте подведём итог и пофантазируем?
Сейчас формируем некий Isomorphic React.js Application Boilerplate на следующие 12 месяцев.
Пока видим такой набор:
- React 16.x
- На сервере - Node.js и Express.
- JSS для генерации оптимизированного Critical CSS и Server-Side Rendering.
- Redux для взаимодействия внутри приложения. Relay может быть опционально сбоку.
- Модульное тестирование через Jest в виду его недавних обновлений.
- UI-тестирование через Nightwatch.js + BrowserStack.
- Переводы через react-intl и react-intl-translations-manager.
- Автоматическое определение языка на сервере через пакет accept-language.
- Автоматическое определение геопозиции через пакеты maxmind и ipaddr.js.
- Изоморфный логгер на базе node-bunyan.
- react-document-title для динамического переключения заголовка вкладки. Или react-helmet?
- isomorphic-fetch для отправки HTTP-запросов (“AJAX”).
- webpack 1.x для сборки. Или всё-таки webpack 2?
- webpack-dev-server и webpack/hot/dev-server для Hot Module Reload.
- Long-term Caching статических ресурсов (например: /assets/logo-8cdab5da.png).
- parallel-webpack для ускорения сборки JavaScript bundle для каждого языка перевода (например: 5 разделов и 10 языков = это уже 50 JavaScript bundles).
- webpack DllPlugin для оптимизации размера JavaScript bundle.
- react-router-redux в качестве роутера.
- ESLint и eslint-config-airbnb с небольшим изменением - не использовать точку с запятой.
- nodemailer для отправки сообщений на e-mail.
Какие пункты можно изменить? Какие добавить? Что можно сделать лучше? Оставьте своё мнение в Issues.