1.0.1 • Published 4 years ago

react-components-dasha-test v1.0.1

Weekly downloads
-
License
-
Repository
-
Last release
4 years ago

Информация для пользователей библиотеки

Как установить и использовать

Эта информация требует уточнения после публикации пакета в npm

npm run install react-components
yarn add react-components
import React from "react";
import { Button, ButtonSize } from "react-components";

const App = () => (
  <div className="app-container">
    <h1>Hello I'm consuming the component library</h1>
    <Button size={ButtonSize.S} />
  </div>
);

export default App;

Какие есть компоненты

А сюда добавить описание компонентов

Button

...

Table

...

Spinner

...

Использование SASS переменных

Мы экспортируем некоторые переменные, чтобы вы могли пользоваться стилями без дублирования кода. Например, вы можете воспользоваться цветами и типографикой:

@import '~react-components/build/typography';
@import '~react-components/build/variables';

.example-container {
    @include heading;

    color: $react-components-white;
}

По-хорошему тут бы описать эти переменные, что про что.


Информация для разработчиков библиотеки

Как добавлять новые компоненты

Чтобы добавить новый компонент, не нужно руками создавать папки и файлы. Нужно запустить команду

npm run new:component ComponentName
yarn new:component ComponentName

В папке src будет автоматически создана подпапка со всеми необходимыми файлами:

  1. index.ts для экспорта компонента
  2. ComponentName.tsx с шаблоном компонента
  3. ComponentName.stories.tsx с шаблоном историй для Storybook
  4. ComponentName.spec.tsx с шаблоном автотестов
  5. ComponentName.scss с шаблоном стилей компонента

Дальше вам остается только работать с созданными файлами :smile:

Не забудьте добавить экспорт нового компонента в файл /src/index.ts

Сборка пакета

Чтобы запустить сборку пакета, используйте команду

npm run build
yarn build

Автотестирование

Jest: https://jestjs.io/ru/docs/tutorial-react

Testing Library: https://testing-library.com/docs/react-testing-library/intro/

Для тестирования компонентов библиотеки используются Jest и Testing Library. Каждый компонент "из коробки" имеет файл ComponentName.spec.tsx, в таких файлах следует писать автотесты.

Автотесты автоматически запускаются по команде git push, но вы можете запустить их самостоятельно. Для этого используйте команду

npm run test
yarn test

Если вы хотите автоматически тестировать код компонентов или даже самих тестов, пока его меняете, используйте команду

npm run test:watch
yarn test:watch

Jest запустит автотестирование и будет "слушать" ваши изменения. На каждое сохранение тесты будут перезапускаться.

Storybook

Сайт: https://storybook.js.org/

Гитхаб репозиторий: https://github.com/storybookjs/storybook

Storybook - это удобный инструмент, который позволяет просматривать компоненты в разных состояниях изолированно от внешнего окружения.

Каждый компонент "из коробки" имеет файл ComponentName.stories.tsx, в котором вы можете описывать различные состояния компонентов в качестве историй. Эти истории будут рендериться при запуске Storybook.

Чтобы запустить Storybook локально, используйте команду

npm run storybook
yarn storybook

После этого вы можете изменять код компонентов или истории, Storybook будет обновляться после сохранения изменений.

Если вы хотите экспортировать Storybook в виде статических файлов (ну мало ли), используйте команду

npm run storybook:export
yarn storybook:export

Typechecking

https://www.typescriptlang.org/tsconfig

В проекте настроена автоматическая проверка типов Typescript при коммите и пуше изменений. При коммите проверка типов выполняется только для измененных файлов. При пуше - для всего проекта. Если вы хотите запустить проверку типов локально, используйте команду

npm run typecheck
yarn typecheck

Форматирование кода - Prettier

Сайт: https://prettier.io/

Гитхаб репозиторий: https://github.com/prettier/prettier

В проекте настроено автоматическое форматирование изменяемого кода при коммите с помощью Prettier. При пуше изменений также выполняется валидация форматирования всего проекта в соответствии с заданными правилами. Если вы хотите запустить проверку форматирования локально, используйте команду

npm run prettier:check
yarn prettier:check

Если вы хотите запустить автоматическое форматирование локально, используйте команду

npm run prettier
yarn prettier

ESLint

Сайт: https://eslint.org/

Гитхаб репозиторий: https://github.com/eslint/eslint

В проекте настроен линтер ESLint. В конфигурации используются все рекомендуемые настройки, а также специальные настройки для TypeScript. При коммите изменений линтер запускается только для изменяемых файлов. Он попытается исправить все ошибки, которые сможет. При пуше изменений линтер запустится для всего проекта в режиме валидации. Если вы хотите запустить линтер локально для валидации, используйте команду

npm run eslint:check
yarn eslint:check

Если вы хотите запустить линтер для исправления ошибок локально, используйте команду

npm run eslint
yarn eslint

Stylelint

Сайт: https://stylelint.io/

Гитхаб репозиторий: https://github.com/stylelint/stylelint

В проекте настроен линтер Stylelint для валдиации CSS. При коммите изменений линтер запускается только для изменяемых файлов. Он попытается исправить все ошибки, которые сможет. При пуше изменений линтер запустится для всего проекта в режиме валидации. Если вы хотите запустить линтер локально для валидации, используйте команду

npm run stylelint:check
yarn stylelint:check

Если вы хотите запустить линтер для исправления ошибок локально, используйте команду

npm run stylelint
yarn stylelint

Commit

В проекте настроена валидация коммитов по стандарту Conventional Commits. Подробнее ознакомиться можно по ссылке: https://www.conventionalcommits.org/en/v1.0.0/

Полезно придерживаться этого стандарта, тк он облегчает работу с репозиторием, а также полезен при публикации новых версий пакета (см. спецификацию семантического версионирования https://semver.org/)

Если при коммите вы используете команду git commit, то вам нужно будет самостоятельно составить сообщение коммита валидным образом, иначе коммит не пройдет. Если вы не хотите париться на этот счет, используйте команду

npm run commit
yarn commit

Нужно будет последовательно ответить на несколько вопросов, на основе ваших ответов будет сформировано сообщение коммита.

Что еще используется в проекте

Husky

Нужен для кастомизации гит хуков

Гитхаб: https://github.com/typicode/husky

Документация: https://typicode.github.io/husky/#/

Lint-staged

Работает в паре с Husky на коммите, чтобы не валидировать весь проект, а только изменяемые файлы

Гитхаб: https://github.com/okonet/lint-staged

Commitlint

Нужен для валидации сообщения коммита для следования соглашению Conventional Commits

Сайт: https://commitlint.js.org/#/

Гитхаб: https://github.com/conventional-changelog/commitlint

Commitizen

Нужен для стандартизации сообщений коммитов

Сайт: https://commitizen-tools.github.io/commitizen/

Гитхаб: https://github.com/commitizen/cz-cli

Hygen

Генератор кода

Сайт: https://www.hygen.io/

Гитхаб: https://github.com/jondot/hygen

1.0.1

4 years ago

1.0.0

4 years ago