Не удается разрешить модуль "React-dom"

Я видел несколько сообщений, связанных с этим типом ошибок. Но не смог разрешиться в моем.

Мой package.json:

"react": "~0.14.7",
"webpack": "^1.12.13",
"react-hot-loader": "^3.0.0-beta.6",
.
.

Я получаю следующую ошибку в webpack:

ERROR in ./public/src/main.js
Module not found: Error: Cannot resolve module 'react-dom' in C:\Users\react-example\public\src 
@ ./public/src/main.js 19:16-36

Но в строке cmd, когда я это сделал

npm -v react-dom

Получаю 3.10.10. React-dom есть. Но мне интересно, почему он все еще выдает эту ошибку.

Когда я установил response-dom через npm "npm install response-dom" и запустил webpack, я получаю следующие ошибки:

ERROR in ./~/react-dom/lib/ReactDOMNullInputValuePropHook.js
Module not found: Error: Cannot resolve 'file' or 'directory' C:\Users\react-example/node_modules/react/lib/ReactComponentTreeHook in C:\Users\react-example\node_modules\react-dom\lib
 @ ./~/react-dom/lib/ReactDOMNullInputValuePropHook.js 13:29-72

ERROR in ./~/react-dom/lib/ReactDOMUnknownPropertyHook.js
Module not found: Error: Cannot resolve 'file' or 'directory' C:\Users\react-example/node_modules/react/lib/ReactComponentTreeHook in C:\Users\react-example\node_modules\react-dom\lib
 @ ./~/react-dom/lib/ReactDOMUnknownPropertyHook.js 15:29-72

ERROR in ./~/react-dom/lib/ReactDOMInvalidARIAHook.js
Module not found: Error: Cannot resolve 'file' or 'directory' C:\Users\react-example/node_modules/react/lib/ReactComponentTreeHook in C:\Users\react-example\node_modules\react-dom\lib
 @ ./~/react-dom/lib/ReactDOMInvalidARIAHook.js 14:29-72

ERROR in ./~/react-dom/lib/ReactDebugTool.js
Module not found: Error: Cannot resolve 'file' or 'directory' C:\Users\react-example/node_modules/react/lib/ReactComponentTreeHook in C:\Users\react-example\node_modules\react-dom\lib
 @ ./~/react-dom/lib/ReactDebugTool.js 16:29-72

Пожалуйста помоги.


person User1230321    schedule 03.03.2017    source источник
comment
Это решило это для меня: stackoverflow.com/a/47722556/15441   -  person hawkeye    schedule 31.12.2019


Ответы (11)


Проблема в том, что react-dom не установлен, когда вы нажимаете npm -v react-dom, вы получаете версию npm, а не react-dom, вы можете проверить, что с помощью npm -v или npm -v react-dom оба дадут одинаковый результат. Вы неправильно проверяете версию пакета.

Как правильно установить React и React-dom?

Используйте это, чтобы установить react и react-dom:

npm install react react-dom --save

После этого вы можете проверить свой package.json файл, если response и response-dom установлены правильно, вы найдете соответствующую запись.

Как проверить версию установочного пакета?

Чтобы проверить версию всех локально установленных пакетов:

npm list    

Для глобально установленных пакетов используйте также -g:

npm list -g

Чтобы проверить версию любого конкретного пакета, укажите также имя пакета:

npm list PackageName

For Example =>
   npm list react
   npm list react-router

После установки ваш package.json будет выглядеть так:

{
  "name": "***",
  "version": "1.0.0",
  "main": "***",
  "scripts": {
     ....
  },
  "repository": {
     ....
  },
  "keywords": [],
  "author": "",
  "dependencies": {
    ....
    "react": "^15.4.2",          //react
    "react-dom": "^15.4.2",      //react-dom
     ....
  },
  "devDependencies": {
     ....
  }
}

Последняя версия react-dom: 15.4.2

Ссылка: https://www.npmjs.com/package/react-dom

person Mayank Shukla    schedule 03.03.2017
comment
Я сказал в вопросе, что после установки react-dom я получаю эти ошибки. То же самое и сейчас. - person User1230321; 04.03.2017

В моем случае в моем webpack.config.common.js был псевдоним:

 resolve: {
    extensions: ['.js', '.jsx'],
    alias: {
      'react-dom': '@hot-loader/react-dom',
    },
  },

Я только что удалил эту строку:

'react-dom': '@hot-loader/react-dom',

и это было исправлено.

person Milena    schedule 04.09.2019
comment
Или убедитесь, что установлен @ hot-loader / react-dom. - person Michael Cox; 05.12.2019
comment
так что вы не можете получить выгоду от @ hot-loader - person Ben; 31.07.2020
comment
Это будет происходить чаще, когда люди переключаются на реакцию-обновление. - person Shawn Erquhart; 06.08.2020

Для тех, кто читает это, но не может этого понять. У меня была та же проблема, которую я решил, установив пакет "response-router" который просто выполняет следующую команду

npm i react-router-dom --save для приложения в браузере.

npm i react-router-native для собственного приложения.

person Kankuro    schedule 16.09.2017

Я использовал npm update, и это решило мою проблему.

person Djesu    schedule 19.06.2018

Возможно, вам потребуется обновить react и react-dom. Несмотря на то, что react-dom фактически был установлен, у меня была эта проблема на ^15.5.4, и она исчезла с ^16.8.6:

$ # update the react and react-dom modules
$ yarn add react react-dom

Убедитесь, что две версии точно совпадают в package.json:

"react": "^16.8.6",
"react-dom": "^16.8.6",

Удалите yarn.lock, node_modules и yarn еще раз.

rm -Rf yarn.lock node_modules && yarn
person Kevin Reilly    schedule 12.04.2019

В моем случае это был псевдоним в моем webpack.conf, который искал @hot-loader/react-dom.

person ATOzTOA    schedule 03.06.2019

Попробуйте rm -rf node_modules && yarn или rm -rf node_modules && npm install, если вы используете npm вместо пряжи.

person Ayesha O.    schedule 22.06.2018

Моя конкретная проблема для получения этой ошибки:

ОШИБКА в ./src/index.js Модуль не найден: Ошибка: не удается разрешить 'eact-dom' в 'C: \ Users \ Jose \ Desktop \ woz-u-React \ React-Course \ react-lesson-one \ src '@ ./src/index.js 2: 0-32 @ multi (webpack) -dev-server / client? http://localhost:8080 ./src/index.js

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

person Jose Salazar    schedule 07.11.2018

Следующая команда решит проблему.

npm установить react-dom --save

person Farzana Khan    schedule 02.12.2019

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

Parcel может сделать это по вашему package.json тремя способами:

введите описание изображения здесь

Удалите узел как цель или укажите --target как browser в командной строке.

Также см:

person James Gentes    schedule 16.04.2021

Ваше приложение указывает на глобальную версию реакции, поэтому вам необходимо установить его вручную с помощью глобального ключевого слова. Вы также можете сравнить установленную версию response-dom в package.json вашего текущего проекта и глобально установленную версию response-dom с помощью команды npm -v react-dom, если обе разные, тогда вручную установите response dom с помощью команды:

sudo npm install -g [email protected]
person Aniket    schedule 19.07.2021