Подтвердить что ты не робот

"модуль не найден: Ошибка: не удается разрешить модуль" реакция /lib/ReactMount ""

Я использовал Reactjs и webpack для запуска проекта, и когда я запускаю "node сервер" в командной строке, появляется такая ошибка:

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

И проводник Chrome появился успешно, но также имеет следующие проблемы:

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

Github: (github.com/Yangqin0607/gallery)

Вот пакет .json

    {
  "private": true,
  "version": "0.0.1",
  "description": "YOUR DESCRIPTION - Generated by generator-react-webpack",
  "main": "",
  "scripts": {
    "clean": "rimraf dist/*",
    "copy": "copyfiles -f ./src/index.html ./src/favicon.ico ./dist",
    "dist": "npm run copy & webpack --env=dist",
    "lint": "eslint ./src",
    "posttest": "npm run lint",
    "release:major": "npm version major && npm publish && git push --follow-tags",
    "release:minor": "npm version minor && npm publish && git push --follow-tags",
    "release:patch": "npm version patch && npm publish && git push --follow-tags",
    "serve": "node server.js --env=dev",
    "serve:dist": "node server.js --env=dist",
    "start": "node server.js --env=dev",
    "test": "karma start",
    "test:watch": "karma start --autoWatch=true --singleRun=false"
  },
  "repository": "",
  "keywords": [],
  "author": "Your name here",
  "devDependencies": {
    "babel-core": "^6.0.0",
    "babel-eslint": "^6.0.0",
    "babel-loader": "^6.0.0",
    "babel-polyfill": "^6.3.14",
    "babel-preset-es2015": "^6.0.15",
    "babel-preset-react": "^6.0.15",
    "babel-preset-stage-0": "^6.5.0",
    "bower-webpack-plugin": "^0.1.9",
    "chai": "^3.2.0",
    "copyfiles": "^1.0.0",
    "css-loader": "^0.23.0",
    "eslint": "^3.0.0",
    "eslint-loader": "^1.0.0",
    "eslint-plugin-react": "^6.0.0",
    "file-loader": "^0.9.0",
    "glob": "^7.0.0",
    "isparta-instrumenter-loader": "^1.0.0",
    "karma": "^1.0.0",
    "karma-chai": "^0.1.0",
    "karma-coverage": "^1.0.0",
    "karma-mocha": "^1.0.0",
    "karma-mocha-reporter": "^2.0.0",
    "karma-phantomjs-launcher": "^1.0.0",
    "karma-sourcemap-loader": "^0.3.5",
    "karma-webpack": "^1.7.0",
    "minimist": "^1.2.0",
    "mocha": "^3.0.0",
    "null-loader": "^0.1.1",
    "open": "0.0.5",
    "phantomjs-prebuilt": "^2.0.0",
    "react-addons-test-utils": "^15.0.0",
    "react-hot-loader": "^1.2.9",
    "rimraf": "^2.4.3",
    "style-loader": "^0.13.0",
    "url-loader": "^0.5.6",
    "webpack": "^1.12.0",
    "webpack-dev-server": "^1.12.0"
  },
  "dependencies": {
    "core-js": "^2.0.0",
    "normalize.css": "^4.0.0",
    "react": "^15.0.0",
    "react-dom": "^15.0.0"
  }
}
4b9b3361

Ответ 1

Эта проблема связана с пакетом react-hot-loader. Вы используете старую версию, которая опирается на файл ReactMount.js, присутствующий в папке node_modules/react/lib.

Для этого нет простого исправления, но у вас есть несколько вариантов:

  • Попробуйте выполнить следующие инструкции: https://github.com/gaearon/react-hot-loader/blob/v3.0.0-beta.6/docs/README.md#usage-with-external-react (но до сих пор мне не повезло)

  • Удалите горячий перезарядчик для реакции (в webpack.config удалите загрузчик 'react-hot')

  • Обновите пакет react-hot-loader до версии 3 (вот как это сделать: https://github.com/gaearon/redux-devtools/commit/64f58b7010a1b2a71ad16716eb37ac1031f93915). Но обратите внимание, что этот пакет уже давно находится в alpha...

  • Откажитесь от своей реакционной версии с той, которая включает ReactMount.js в папку lib (15.0.1 используется для того, чтобы этот файл не был уверен, когда он остановился).

Обновление: React Hot Loader 3 теперь находится в бета-версии с более полным руководством по обновлению: https://github.com/gaearon/react-hot-loader/tree/v3.0.0-beta.7/docs#migration-to-30

Ответ 2

Вы используете устаревший пакет react-hot-loader, который использует внутреннюю реакцию api throught react\lib\ReactMount. Теперь реакция не позволяет это, следовательно, проблема.

Попробуйте обновить его до последней версии:

$ npm install --save-dev [email protected]

Ответ 3

Ни один из вышеперечисленных решений не работал у меня. Проводил остаток дня в кроличьей дыре от проблем/комментариев github, взвешивая плюсы/минусы/выполнимость различных хакерских обходных решений.

Самый быстрый, самый простой вариант: "Я просто хочу работать над оригинальной проблемой, над которой я собирался работать сегодня". Исправление, которое сработало для меня, происходит от: https://github.com/gaearon/react-hot-loader/issues/417#issuecomment-261548082

В вашей конфигурации webpack добавьте следующий псевдоним в раздел resolve:

resolve: {
  alias: { 'react/lib/ReactMount': 'react-dom/lib/ReactMount' }
}

Это не стабильное долгосрочное исправление, это исправление для разработки, поэтому вы можете продолжать развиваться, не будучи вынуждены решать проблемы обновления с самого начала.

Я все еще не уверен на 100%, почему я вижу эту проблему в своем одном приложении, а не в другом, оба были созданы из генератора реакции fountain.js response-redux и имеют идентичные package.json.

Ответ 4

Спасибо за все ваши ответы. Я решил свои проблемы.

"Эта проблема связана с пакетом реакции-hot-loader. Вы используете старую версию, которая опирается на файл ReactMount.js, который присутствует в папке node_modules/react/lib." сказал cheesemacfly.

Итак, вот решение для меня: 1) обновление реактивного горячего загрузчика до последней версии

npm install --save-dev [email protected]

но вот еще одна проблема, связанная с реакционно-горячим загрузчиком введите описание изображения здесь

2), поэтому я удалил реактивный нагреватель с 'cfg/dev.js' изменить код

loader: 'react-hot!babel-loader'

в

loader: 'babel-loader'

Ответ 5

Это, вероятно, просто проблема зависимости. Он либо не получает правильную версию реакции, либо не устанавливает ее правильно.

# update npm
$ npm install -g npm

# reinstall the generator-react-webpack package (note the global tags)
$ npm install -g yo
$ npm install -g generator-react-webpack

Затем попытайтесь сгенерировать свое приложение.

Ответ 6

У меня была такая же проблема, и ни одно из решений не работало. Тогда мне пришло в голову, что кажется, что реакция отсутствует. У меня возникла проблема после установки и удаления пакета для postgreSQL.

Поэтому я добавил его. PS, я использовал пряжу

yarn add react

Ответ 7

Огромное спасибо cheesemacfly, я смог решить ту же проблему с вашим предложением удалить "реактив-горячий" из загрузчика.

{
    test: /\.(js|jsx)$/,
    loaders: ['react-hot', 'babel'],
    exclude: /(node_modules|lib\/ckeditor)/
}

I Изменено:

{
    test: /\.(js|jsx)$/,
    loader: 'babel',
    exclude: /(node_modules|lib\/ckeditor)/
}

Не забудьте изменить слово "загрузчики" на "загрузчик", поскольку вы больше не ссылаетесь на список.

Ответ 8

Обновление react-hot-loader не сработало для меня, но, удалив форму react-hot из списка загрузчиков, просто комментируя ее, исправлена ​​проблема:

{
    test: /\.js$/,
    exclude: /node_modules/,
    loaders: [
        // 'react-hot',
       'babel'
    ]
}