README
Fullstack React.js Application boilerplate for 2016-2017 years
На данном этапе обсуждения и описание ведётся на русском языке, чтобы вам было удобней и комфортней. В сентябре всё будет переведено на английский. Благодарим за понимание.
План
- 29 августа - начало работы над составом проекта
- 1 сентября - утверждение состава и структуры
- 7 сентября - завершение первой версии
- 9 сентября - перевод описания и issues на английский язык
Обращение
Итак, друзья, уже шесть часов вечера, последний понедельник лета. Давайте подведём итог и пофантазируем?
Сейчас формируем некий Isomorphic React.js Application Boilerplate на следующие 12 месяцев.
Пока видим такой набор:
- React 15.
- На сервере - Node.js и Express.
- CSS modules и isomorphic-style-loader для автоматической генерации Critical CSS при Server-side Rendering. Или всё-таки JSS,?
- Redux для взаимодействия внутри приложения. Или всё-таки Relay?
- Модульное тестирование через AVA и Enzyme. Или всё-таки Jest с его автоматической генераций mock-объекта Browser?
- UI-тестирование через Nightwatch.js + Browserstack.
- Переводы через react-intl и react-intl-translations-manager.
- Автоматическое определение языка на сервере через пакет accept-language.
- Автоматическое определение геопозиции через пакеты maxmind и ipaddr.js.
- Изоморфный логгер на базе node-bunyan.
- react-document-title для динамического переключения заголовка вкладки.
- 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 с небольшим изменением - не использовать точку с запятой.
Какие пункты можно изменить? Какие добавить? Что можно сделать лучше? Оставьте своё мнение в Issues.