Git Product home page Git Product logo

production_project's Introduction

Запуск проекта

npm install - устанавливаем зависимости
npm run start:dev или npm run start:dev:vite - запуск сервера + frontend проекта в dev режиме

Скрипты

  • npm run start - Запуск frontend проекта на webpack dev server
  • npm run start:vite - Запуск frontend проекта на vite
  • npm run start:dev - Запуск frontend проекта на webpack dev server + backend
  • npm run start:dev:vite - Запуск frontend проекта на vite + backend
  • npm run start:dev:server - Запуск backend сервера
  • npm run build:prod - Сборка в prod режиме
  • npm run build:dev - Сборка в dev режиме (не минимизирован)
  • npm run generate:slice - Скрипт для генерации FSD слайсов

Архитектура проекта

Проект написан в соответствии с методологией Feature sliced design

Ссылка на документацию - feature sliced design


Работа с переводами

В проекте используется библиотека i18next для работы с переводами. Файлы с переводами хранятся в public/locales.

Для комфортной работы рекомендуем установить плагин для webstorm/vscode

Документация i18next - https://react.i18next.com/


Конфигурация проекта

Для разработки проект содержит 2 конфига:

  1. Webpack - ./config/build
  2. vite - vite.config.ts

Оба сборщика адаптированы под основные фичи приложения.

Вся конфигурация хранится в /config

  • /config/babel - babel
  • /config/build - конфигурация webpack

В папке scripts находятся различные скрипты для рефакторинга\упрощения написания кода\генерации отчетов и тд.


Работа с данными

Взаимодействие с данными осуществляется с помощью redux toolkit. По возможности переиспользуемые сущности необходимо нормализовать с помощью EntityAdapter

Запросы на сервер отправляются с помощью RTK query

Для асинхронного подключения редюсеров (чтобы не тянуть их в общий бандл) используется DynamicModuleLoader


Работа с feature-flags

Разрешено использование feature flags только с помощью хелпера toggleFeatures

в него передается объект с опциями

{ name: название фича-флага, on: функция, которая отработает после Включения фичи of: функция, которая отработает после ВЫключения фичи }

Для автоматического удаления фичи использовать скрипт remove-feature.ts, который принимает 2 аргумента

  1. Название удаляемого фича-флага
  2. Состояние (on\off)

Сущности (entities)

Фичи (features)

production_project's People

Contributors

m0r4n9 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.