npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

leomax

v0.9.2

Published

Фреймворк для разработки, сборки, тестирование, линтинга и деплоя js-приложений

Downloads

20

Readme

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

МЕДЛЕННО.