Create React App (CRA) является мощным инструментом для быстрого создания и разработки React приложений. Однако, в некоторых случаях, работа с относительными путями может стать неудобной и затруднить поддержку кода. В этой статье мы рассмотрим, как использовать абсолютные пути с помощью Craco в Create React App, чтобы упростить работу с модулями и компонентами.

Что такое Craco?

Craco (Create React App Configuration Override) - это инструмент, который позволяет нам переопределить конфигурацию Create React App без необходимости эжектировать проект. Он предоставляет гибкую возможность настройки Webpack и Babel, что позволяет нам вносить изменения в сборку и разработку нашего приложения без необходимости вносить изменения в саму структуру проекта.

Шаг 1: Создание приложения с Create React App

Если у вас еще нет Create React App, вы можете создать новое приложение следующей командой:

npx create-react-app my-app
cd my-app

Шаг 2: Установка Craco

Установите пакет @craco/craco, который позволяет нам использовать Craco для переопределения конфигурации Create React App.

npm install @craco/craco --save

Шаг 3: Создание файла Craco.config.js

В корневом каталоге вашего проекта создайте файл craco.config.js. Этот файл будет содержать настройки, которые мы хотим переопределить. Давайте рассмотрим пример использования абсолютных путей:

const path = require("path");

module.exports = {
  webpack: {
    alias: {
      shared: path.resolve(__dirname, "src/shared"),
      app: path.resolve(__dirname, "src/app"),
      widgets: path.resolve(__dirname, "src/widgets"),
      entities: path.resolve(__dirname, "src/entities"),
      pages: path.resolve(__dirname, "src/pages"),
      features: path.resolve(__dirname, "src/features"),
    },
  },
};

Шаг 4: Изменение скриптов в package.json

Теперь, когда у нас есть наш файл craco.config.js, нужно обновить скрипты в package.json, чтобы использовать Craco вместо стандартных скриптов react-scripts.

"scripts": {
    "start": "craco start",
    "build": "craco build",
    "test": "craco test",
  },

Шаг 5: Перезапустите приложение

После того, как мы внесли настройки в файл craco.config.js и изменили скрипты в package.json, давайте перезапустим наше приложение, чтобы убедиться, что все работает правильно.

npm start

Применение абсолютных путей

Теперь, когда Craco настроен, мы можем использовать абсолютные пути вместо относительных в нашем коде. Например:

// Вместо
import { Input } from "../shared/ui/Input";

// Можно использовать
import { Input } from "shared/ui/Input";

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

Заключение

В этой статье мы рассмотрели, как использовать Craco для настройки Create React App и внедрения абсолютных путей. Абсолютные пути помогают улучшить читаемость кода и упрощают разработку, особенно в больших проектах. Использование Craco предоставляет гибкую возможность настройки конфигурации без необходимости эжектирования проекта, что делает процесс разработки более удобным и эффективным.

Комментарии (4)


  1. ReinRaus
    03.08.2023 13:39

    Спасибо. Буквально таки вчера полночи воевал с CRA - не хотел делать eject проекта и при этом надо было изменить настройки Babel и webpack. Потратил кучу времени и в итоге CRA ушёл не побеждённым. Вечером попробую Ваш способ. Эта статья как бальзам мне на душу :)


    1. Vadiok
      03.08.2023 13:39

      Может имеет смысл переходить на Vite?


      1. Whyareyouu Автор
        03.08.2023 13:39

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


    1. Whyareyouu Автор
      03.08.2023 13:39

      Надеюсь, этот способ помог Вам.