更新后出现错误:无法解析模块'react/lib/ReactMount'
问题描述:
因此,当我开始收到ReactMount不在React/lib/ReactMount的错误时,我试图将我的react-webpack应用放在Heroku上。然后我尝试了很多不同的东西,最终尝试用同样的react-webpack生成器创建一个新项目。现在,即使在本地主机上运行时也会遇到同样的错误,这意味着它必定是由于某处的更新造成的,对吗?更新后出现错误:无法解析模块'react/lib/ReactMount'
有没有人知道这件事?
我有以下的依存关系:
"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",
"firebase": "^3.5.2",
"input-moment": "^0.3.0",
"moment": "^2.15.2",
"normalize.css": "^4.0.0",
"react": "^15.0.0",
"react-bootstrap-datetimepicker": "0.0.22",
"react-datetimepicker-bootstrap": "^1.1.2",
"react-dom": "^15.0.0",
"webpack": "^1.13.3"
答
看起来你和我在同一条船上。我们都使用旧版本的react-hot-loader
更新到版本3.x并执行另一个npm安装。
答
什么工作对我来说是简单的变化作出反应,从:^ 15.0.0至15.3.1。
答
您需要更新react
才能解决此问题。在我的情况下,我没有使用热装载机。升级来解决这个问题。使用try和catch来处理目前的15.4.0
答
转到node_modules /反应热装载机/ index.js和使用尝试捕捉,而不是需要
将这段代码
prependText = [
'/* REACT HOT LOADER */',
'if (module.hot) {',
'(function() {',
'var ReactHotAPI = require(' + JSON.stringify(require.resolve('react-hot-api')) + '),',
'RootInstanceProvider = require(' + JSON.stringify(require.resolve('./RootInstanceProvider')) + '),',
'ReactMount = require("react/lib/ReactMount"),',
'React = require("react");',
'module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function() {',
'return RootInstanceProvider.getRootInstances(ReactMount);',
'}, React);',
'})();',
'}',
'try {',
'(function() {',
].join(' ');
新代码错误
var reactMountImport;
try {
require('react-dom/lib/ReactMount');
reactMountImport = 'ReactMount = require("react-dom/lib/ReactMount"),';
} catch(e) {
console.log(e)
reactMountImport = 'ReactMount = require("react/lib/ReactMount"),';
}
prependText = [
'/* REACT HOT LOADER */',
'if (module.hot) {',
'(function() {',
'var ReactHotAPI = require(' + JSON.stringify(require.resolve('react-hot-api')) + '),',
'RootInstanceProvider = require(' + JSON.stringify(require.resolve('./RootInstanceProvider')) + '),',
reactMountImport,
'React = require("react");',
'module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function() {',
'return RootInstanceProvider.getRootInstances(ReactMount);',
'}, React);',
'})();',
'}',
'try {',
'(function() {',
].join(' ');
这里
+0
手动编辑node_modules是一个坏主意,在更新之后它们会再次中断。 –
您使用的是哪个版本的React?他们今天发布了一个新版本,它改变了内部API。 'React/lib'里面的东西被移动了;它不是公共API的一部分,不应该直接引用。如果你升级到React 15.4,那可能是问题所在。如果你没有明确地引用内部的东西,你可能会使用另一个软件包。 –
我从字面上得到了同样的错误,使用React 15.3.1 – Lutando
我正在使用react 15.0.0,如依赖关系所示。很抱歉,我对所有这些作品都不是很有信心,但是更新不应该以我现在拥有自己的依赖项的方式来影响项目,对吧? –