leomax
TypeScript icon, indicating that this package has built-in type declarations

0.9.2 • Public • Published

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 start
    • leomax dev
    • leomax start
  • Внесение изменений
    • npm run save -- -m "update..."
    • leomax save -m "update..."
    • leomax commit -m "update..."
  • Проверка стиля кода
    • npm run lint
    • npm pretest
    • leomax lint
  • Тестирование кода
    • npm test
    • leomax test
  • Публикация
    • npm run publish
    • leomax publish
    • leomax 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

МЕДЛЕННО.

Package Sidebar

Install

npm i leomax

Weekly Downloads

1

Version

0.9.2

License

ISC

Last publish

Collaborators

  • derasds4