leomax v0.9.2
leomax
Фреймворк для разработки, сборки, тестирование, линтинга и деплоя js-приложений
Сейчас - TypeScript
В данный момент происходит переписывание и улучшение идей модуля на TypeScript.
Установка
Глобально (рекомендуется)
sudo npm i -g leomaxГлобально (Windows)
npm i -g leomaxЛокально
npm i -S leomaxВ случае установки локально, пишите команды в блоке scrips в package.json
Начало работы
Инициализация проекта
leomax initГенерация шаблона
Используйте, только если работаете с пустым проектом
leomax generate react --isomorphic --appolo --graphqlЦикл разработки
Команды npm * и npm run * доступны только после инициализации / записи в scripts
Перечисленные для каждого этапа команды являются взаимозаменяемыми
- Запуск режима разработчика
npm startleomax devleomax start
- Внесение изменений
npm run save -- -m "update..."leomax save -m "update..."leomax commit -m "update..."
- Проверка стиля кода
npm run lintnpm pretestleomax lint
- Тестирование кода
npm testleomax test
- Публикация
npm run publishleomax publishleomax deploy
Что и как должно работать
Инициализация
leomax init- Создает и сортирует package.json, добавляет туда нужные скрипты
- Создает .leomax.json
- Создает *ignore-файлы, babelrc, editorconfig, README и т.п.
- Надо бы:
- Глубокая проверка package.json и .leomax.json (проверить скрипты, корректность, что-то изменить/добавить, если надо), а не только проверка на наличие файла
- Гораздо больше кастомизации при вызове
leomax init - Инициализировать минимальную структуру в зависимости от настроек (создать несколько файлов, директорий и т.п.)
Линтинг
leomax lint- Проверяет код в соответствии с
eslint-config-leomax
или
.eslintrc/eslintrc.json, если они есть (leomax initдолжен создавать.eslintrc) - Исправляет, что может исправить (опечатки и т.п.)
- Надо бы:
- Кастомизация отображения результатов, исправления ошибок, игнорирования предупреждений и т.п.
- Брать настройки из
.leomax.json - CLI-опции с теми же настройками (перекрывает
.leomax.json)
Архитектура приложения
Святая святых. От выбранной архитектуры (типа) приложения зависит то, как Вы будете его разрабатывать. Каждая архитектура имеет определенные особенности в конфигурации, возможностях и требованиях к разработчику.
Фреймворк должен подстраиваться под пользователя, но тем не менее он будет предъявлять некоторые трябования в зависимости от выбранной архитектуры.
- Общие требования
- В случае изменения названия директории с исходниками, требуется
отразить это изменение в конфиге (
path.src) - Каждый корневой компонент (который включает в себя все остальные)
должен быть обернут в Document (
leomax/lib/Document.js), который реализует изоморфную генерацию html-страницы.
- В случае изменения названия директории с исходниками, требуется
отразить это изменение в конфиге (
- Лендинг (Статичная страница) в разработке
- Простейшая архитектура, ограничена лишь общими требованиями
- Имеется только одна точка входа (по-умолчанию
./src/index.js) - Имеется только одна директория сборки (по-умолчанию
./dist) - Серверная часть отстутствует
- В сборку добавляется сгенерированный
index.html
- Single Page Application (SPA) в планах
- Наследует особенности от Лендинга
- Серверная часть опциональна. По-умолчанию включена.
- Server-side rendering (требует включенную серверную часть)
- Multi Page Application (MPA) в планах
- Наследует особенности от SPA
- Имеется несколько точек входа (как кастомизировать роутинг пока не придумал)
- Progressive Web Application (PWA) в планах
- Наследует особенности от SPA
- Агрессивное предпочтение кешированию
- Добавляется Service Worker (оффлайн/сетевой прокси)
- Имеется две точки входа: статичная общая часть и компонент для асинхронной загрузки контента
- Ленивый server-side rendering. Требует указание глобального
состояния (авторизация, роутинг без подгрузки, критичные для
отображения асинхронные части и т.п.). В случае его отсутствия
добавляет в сборку
index.html.
Сборка
leomax buildМЕДЛЕННО.