Какие причины могут привести к возникновению ошибок при создании проекта на React?

Здравствуйте. После создания проекта с помощью команды в командной строке возникает ошибка: 

<pre><code>npm error code ERESOLVE
npm error ERESOLVE unable to resolve dependency tree
npm error
npm error While resolving: my-app@0.1.0
npm error Found: react@19.0.0
npm error node_modules/react
npm error   react@"^19.0.0" from the root project
npm error
npm error Could not resolve dependency:
npm error peer react@"^18.0.0" from @testing-library/react@13.4.0
npm error node_modules/@testing-library/react
npm error   @testing-library/react@"^13.0.0" from the root project
npm error
npm error Fix the upstream dependency conflict, or retry
npm error this command with --force or --legacy-peer-deps
npm error to accept an incorrect (and potentially broken) dependency resolution.
npm error
npm error
npm error For a full report see:
npm error C:\Users\p\AppData\Local\npm-cache\_logs\2025-01-16T14_09_04_175Z-eresolve-report.txt
npm error A complete log of this run can be found in: C:\Users\p\AppData\Local\npm-cache\_logs\2025-01-16T14_09_04_175Z-debug-0.log       
`npm install --no-audit --save @testing-library/jest-dom@^5.14.1 @testing-library/react@^13.0.0 @testing-library/user-event@^13.2.1 web-vitals@^2.1.0` failed</code></pre>

Базовый сайт загружается, однако возникает необходимость отдельно устанавливать библиотеки, которые требуются для работы React, чтобы сайт отображался без ошибок:

<pre><code>ERROR in ./src/reportWebVitals.js 5:4-24
Module not found: Error: Can't resolve 'web-vitals' in 'C:\Users\p\Desktop\react\my-app\src'</code></pre>

У меня установлена последняя версия Node.js, и я устанавливаю зависимости с использованием команды `npm install --save-exact react@^19.0.0 react-dom@^19.0.0`, после чего создаю проект по команде. Как можно устранить возникшие ошибки?
  • 16 января 2025 г. 14:34
Ответы на вопрос 2
Ошибки, подобные тем, которые вы наблюдаете, происходят из-за конфликтов зависимостей при установке пакетов в проекте на React. Давайте разберём основные причины возникновения ошибок и способы их устранения:

### Причины ошибок

1. **Конфликт версий зависимостей**: 
   - В вашем случае ошибка `npm error peer react@"^18.0.0" from @testing-library/react@13.4.0` указывает на то, что пакет `@testing-library/react` ожидает `react` версии `^18.0.0`. При этом вы пытаетесь установить `react` версии `19.0.0`, что приводит к конфликту.

2. **Поддержка других библиотек**: 
   - Обновление основной библиотеки (например, React) может не поддерживаться старыми версиями других библиотек, которые вы хотите использовать.

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

4. **Требуемые пакеты не установлены**: 
   - Ошибка `Module not found: Error: Can't resolve 'web-vitals'` проявляется, когда вы пытаетесь использовать функциональность, которая не была установлена.

### Способы устранения ошибок

1. **Использование правильных версий библиотек**:
   - Рекомендуется использовать версии библиотек, которые совместимы друг с другом. Например, если вы хотите использовать React 19.0.0, вам необходимо убедиться, что все используемые вами библиотеки поддерживают эту версию. Вы можете проверить документацию библиотек, чтобы найти актуальные версии.

2. **Использование флагов при установке**:
   - Если хотите установить библиотеки игнорируя ошибки разрешения зависимостей, используйте:
     ```bash
     npm install --legacy-peer-deps
     ```
   - Это позволит игнорировать конфликты зависимостей, но может привести к потенциально нестабильной ситуации.

3. **Проверка структуры зависимостей вашего проекта**:
   - Убедитесь, что в вашем проекте нет конфликтующих зависимостей. Для этого выполните:
     ```bash
     npm ls
     ```
   - Это покажет, какие версии библиотек установлены и какие из них имеют конфликты.

4. **Создание нового проекта с правильными версиями библиотек**:
   - Если вы всё же хотите использовать свежую версию React, возможно стоит создать новый проект и сразу установить совместимые версии библиотек.

5. **Установка недостающих пакетов**:
   - Для исправления ошибки о недостающем модуле (например, `web-vitals`) вам нужно вручную установить этот пакет:
     ```bash
     npm install web-vitals
     ```

6. **Изменение package.json**:
   - Вы можете вручную изменить `package.json` файла вашего проекта и установить версии зависимостей, которые вы хотите использовать, после чего выполните `npm install`.

### Резюме
Лучший подход — искать совместимые версии библиотек. Если используемая вами версия React (например, 19.0.0) вызывает конфликты с другими библиотеками, возможно, стоит оставить её на более старой, стабильной версии (например, 18.0.0) до тех пор, пока все необходимые для вас библиотеки не будут обновлены или не подтвердят свою совместимость с новыми версиями.
Не делать это: 
npm install --save-exact react@^19.0.0 react-dom@^19.0.0


https://create-react-app.dev/
Просто:
npx creacte-react-app my-app
Похожие вопросы