Интерфейс командной строки, который инициализирует скелет библиотеки.
Задача утилиты в том, чтобы: ее запустить, ответить на вопросы и получить скелет для написания своей библиотеки, которую можно использовать как для серверов на 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.
-
Вопрос:
- Я вижу что собираются форматы 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" // ... }
-
Вопрос:
- Что такое мультиязычность и как это работает?
Ответ:
- Если при запуске утилиты вы выбрали мультиязычность, то у вас запросят какие языки вы хотите использовать - достаточно перечислить в формате: ru, en, ch.
После чего будет созданы файлы в папке docs README-* и CHANGELOG-*, где "*" - это указанные языки. И будут ссылки на них в файле README и CHANGELOG.
Отсюда следует что мультиязычность - это поддержка проекта/пакета на разных языках одинаково. То как это работает можно убедиться на текущем проекте. -
Вопрос:
- Я создал проект с помощью утилиты и не выбрал некоторые пакеты при инициализации. Как мне добавить эти пакеты?
Ответ:
- На текущий день нельзя дополнить ранее созданный проект или обновить зависимости, с помощью данной утилиты.
Лучшее решение, на текущий день, это создать новый проект с помощью утилиты и перенести необходимую часть в него со старого.