Skip to content

Latest commit

 

History

History
103 lines (76 loc) · 5.61 KB

File metadata and controls

103 lines (76 loc) · 5.61 KB

readme: Главная | EN

SKELETON-LIB-CLI

Интерфейс командной строки, который инициализирует скелет библиотеки.

Задача утилиты в том, чтобы: ее запустить, ответить на вопросы и получить скелет для написания своей библиотеки, которую можно использовать как для серверов на nodejs так и в браузере. Если хотите использовать утилиту для создания UI компонентов для vue например, то стоит использовать более специализированные решения.

# Функционал

  • Rollup - ядро, с помощью которого собираются бандлы в формате CJS(CommonJS), UMD и ES;
  • Поддержка TypeScript и сборка типов в единный файл типов;
  • Eslint и Pritter c базовой конфигурацией;
  • Jest c Coverage;
  • Мультиязычность - Создаст скелеты для документации с указанными языками;
  • Bin файл (cli run)
  • Шаблон issues для GitHub;
  • Поддержка JavaScript;
  • Монорепозитории на базе Lerna;
  • Lint Git Commits - линтер коммитов в гит по правилам;

# Установка

npx skeleton-lib-cli

Так же у cli есть необязательные параметры:

npx skeleton-lib-cli -lang en

npx skeleton-lib-cli -outDir DIR_PROJECT

npx skeleton-lib-cli -outDir DIR_PROJECT -lang en
Опция Тип По умолчанию Описание
--lang en | ru ru На каком языке должен быть UI cli
--outDir string --- Путь, где создать проект

После установки надо перейти в папку проекта и установить зависимости через NPM или YARN.

# Вопросы/Ответы

  1. Вопрос:
    - Я вижу что собираются форматы CJS(CommonJS), UMD и ES. Как я могу отключить ненужный формат?

    Ответ:
    - За сборку отвечает rollup и конфиг для него rollup.config.ts - достаточно просто закоментировать лишний вызов.

    // rollup.config.ts
    
    export default [
      defineCJS(PACKAGE_NAME),
      //defineUMD(PACKAGE_NAME, MODULE_NAME),
      //defineES(PACKAGE_NAME),
      defineTypeTS(PACKAGE_NAME),
    ];

    Но надо так же понимать что надо будет поправить файл package.json, чтобы отключить лишнее:

    // package.json
    
    {
      // ....
      "main": "dist/lib-cli.cjs.js",
      // "unpkg": "dist/lib-cli.umd.js", remove
      // "module": "dist/lib-cli.esm.js", remove
      "types": "dist/lib-cli.d.ts"
      // ...
    }

  2. Вопрос:
    - Что такое мультиязычность и как это работает?

    Ответ:
    - Если при запуске утилиты вы выбрали мультиязычность, то у вас запросят какие языки вы хотите использовать - достаточно перечислить в формате: ru, en, ch.
    После чего будет созданы файлы в папке docs README-* и CHANGELOG-*, где "*" - это указанные языки. И будут ссылки на них в файле README и CHANGELOG.
    Отсюда следует что мультиязычность - это поддержка проекта/пакета на разных языках одинаково. То как это работает можно убедиться на текущем проекте.

  3. Вопрос:
    - Я создал проект с помощью утилиты и не выбрал некоторые пакеты при инициализации. Как мне добавить эти пакеты?

    Ответ:
    - На текущий день нельзя дополнить ранее созданный проект или обновить зависимости, с помощью данной утилиты.
    Лучшее решение, на текущий день, это создать новый проект с помощью утилиты и перенести необходимую часть в него со старого.

# Лицензия

MIT