Фронтенд boilerplate. Используемые технологии: node-js, react + server side rendering, hot-module-replacement, webpack 4, postCss.
- Качаем Node.js LTS: https://nodejs.org/en/
- В корне проекта выполняем команду
npm install
чтобы установить зависимости - Копируем и переименовываем
config/common.json.dist
иconfig/server.json.dist
без расширения.dist
(руками либо через скриптci.js
) и указываем все пути, ключи, env. - В корне выполняем команду
npm start
- Сайт должен запуститься на
localhost:8080
Все изменения подхватываются автоматически при изменении исходников.
- Качаем Node.js LTS: https://nodejs.org/en/
- В корне проекта выполняем команду
npm install
чтобы установить зависимости - Копируем и переименовываем
config/common.json.dist
иconfig/server.json.dist
без расширения.dist
(руками либо через скриптci.js
) и указываем все пути, ключи, env. - Запустить команду
npm run build
- После окончания появится папка
dist
в которой лежит папкаpublic
и серверный файлserver.js
, который нужно скормить серверу nodejs - Запускаем сервер nodejs:
npm run server
Тут хранятся различные пути до api и другие данные которые доступны как клиентской так и серверной части.
env='production'
- даёт команду всему приложению вести себя как на боевом сервере, т.е. включается минификация, NODE_ENV ставится production, и выключается hot module replacement плагины. Также не будет работать отдача ассетов (js, css, images), т.к. их на продакшене отдаёт nginx.
env='development'
- отключает минификацию, и включает hot module replacement. Поэтому запустив шаг 4 (npm start
) должно всё работать как надо.
apiUrl
- путь до Api
Файл выделен отдельно так как в нём хранятся различные ключи и серверные данные, которые не должны попасть пользователю.
Различные названия (page titles, messages и др.): assets_src\shared\modules\constants.js
В папке config/
находятся файлы для конфигурации приложения:
-
common.json.dist
- файл-шаблон общей конфигурации из него нужно создатьcommon.json
-
server.json.dist
- файл-шаблон серверной конфигурации из него нужно создатьserver.json
-
client.js
- модуль для подключения конфигурации в клиентскую часть приложения -
server.js
- модуль для подключения конфигурации в серверную (node-js) часть приложения -
ci.js
- скрипт для настройки и автоматического копирования*.dist
файлов в*.js
.node ci.js -i dev
- сгенерирует все ссылки для -dev инстансов.node ci.js
- сгенерирует все ссылки для production инстансов.node ci.js -au https://api-example.com -e production
- указываем кастомные ссылки на инстансы и ставим среду вproduction
.- Параметры, кратко:
node ci.js [-i dev] [-au apiUrl] [-e production]
- Список всех параметров
--apiUrl, -au: url to site api like https://api-example.com.com
--env, -e: production or development app environment
--help, -h: get some help information```