Инструкция по запуску сайта на ваш локальный компьютер:
- Склонируйте данный репозиторий.
- Напиши в терминале
npm install
для установки всех зависимостей. - Напишите в терминале команду
npm run dev
.
Или вы можете просто зайти на сайт, загруженный на Github Pages.
npm run dev
- Запуск проекта в dev режиме на Vitenpm run build
- Сборка проекта с помощью Vitenpm run deploy
- Деплой проекта на Github Pagesnpm run stylelint:check
- Запуск проверки scss файлов проекта с помощью styleLintnpm run stylelint:fix
- Запуск исправления scss файлов проекта, там где это возможно, с помощью styleLintnpm run eslint:check
- Запуск проверки ts файлов проекта с помощью esLintnpm run eslint:fix
- Запуск исправления ts файлов проекта, там где это возможно, с помощью esLintnpm run storybook
- запуск Storybooknpm run storybook:build
- Сборка storybook билдаnpm run test:ui
- Запуск скриншотных тестов с lokinpm run test:ui:ok
- Подтверждение новых скриншотовnpm run test:ui:report
- Генерация полного отчета для скриншотных тестовnpm run test:ui:json
- Генерация json отчета для скриншотных тестовnpm run test:ui:html
- Генерация HTML отчета для скриншотных тестов
Проект написан в соответствии с методологией Feature sliced design.
Ссылка на документацию - feature sliced design
В проекте используется:
Скриншотное тестирование с loki - npm run test:ui
Подробнее о тестах - документация тестирования
В проекте используется eslint для проверки typescript кода и stylelint для проверки файлов со стилями.
npm run lint:ts
- Проверка ts файлов линтеромnpm run lint:ts:fix
- Исправление ts файлов линтеромnpm run lint:scss
- Проверка scss файлов style линтеромnpm run lint:scss:fix
- Исправление scss файлов style линтером
В проекте для каждого компонента описываются стори-кейсы.
Файл со сторикейсами создаётся рядом с компонентом с расширением .stories.tsx
Запустить сторибук можно командой:
npm run storybook
Подробнее о Storybook
Пример:
import type { Meta, StoryObj } from "@storybook/react";
import { Button } from "./Button";
import { ButtonTypes } from "../model/Button__types";
const meta = {
title: "shared/Button",
component: Button,
parameters: {
layout: "centered",
},
} satisfies Meta<typeof Button>;
export default meta;
type Story = StoryObj<typeof meta>;
export const ButtonRed: Story = {
args: {
to: "/",
text: "Красная кнопка",
type: ButtonTypes.RED,
},
};
export const ButtonBlue: Story = {
args: {
to: "/",
text: "Синяя кнопка",
type: ButtonTypes.BLUE,
},
};
export const ButtonGray: Story = {
args: {
to: "/",
text: "Серая кнопка",
type: ButtonTypes.GRAY,
},
};
export const ButtonBlack: Story = {
args: {
to: "/",
text: "Чёрная кнопка",
type: ButtonTypes.BLACK,
},
};
Для разработки проект содержит конфиг: Vite - vite.config.ts
Cборщика адаптирован под основные фичи приложения.
Вся конфигурация хранится в корне проекта:
- vite.config.ts - конфигурация Vite
- /.storybook - конфигурация Storybook