Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 更新后出错:无法解析模块';react/lib/ReactMount';_Reactjs_Heroku - Fatal编程技术网

Reactjs 更新后出错:无法解析模块';react/lib/ReactMount';

Reactjs 更新后出错:无法解析模块';react/lib/ReactMount';,reactjs,heroku,Reactjs,Heroku,因此,当我开始发现ReactMount不在react/lib/ReactMount时,我正试图将我的react网页包应用程序放在Heroku上。然后我尝试了很多不同的东西,最后尝试用相同的react网页包生成器创建一个新项目。现在,即使在本地主机上运行,我也会犯同样的错误,这意味着它一定是由于某个地方的更新,对吗 有人知道这件事吗 我有以下依赖项: "devDependencies": { "babel-core": "^6.0.0", "babel-eslint": "^6.0.0", "b

因此,当我开始发现ReactMount不在react/lib/ReactMount时,我正试图将我的react网页包应用程序放在Heroku上。然后我尝试了很多不同的东西,最后尝试用相同的react网页包生成器创建一个新项目。现在,即使在本地主机上运行,我也会犯同样的错误,这意味着它一定是由于某个地方的更新,对吗

有人知道这件事吗

我有以下依赖项:

 "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安装


请参阅-

对我有效的方法是将react:^15.0.0更改为15.3.1。

您需要更新
react
以解决此问题。就我而言,我没有使用热加载程序。react的升级解决了此问题。当前在
15.4.0

上,转到node_modules/react hot loader/index.js,使用try-catch而不是required

替换此代码

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(' ');
使用try-and-catch处理错误来创建新代码

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(' ');
您可以在这里查看更改

您使用的是什么版本的React?他们今天发布了一个新版本,它改变了内部API。
React/lib
里面的东西被移动了;它不是公共API的一部分,不应该直接引用。如果升级到React 15.4,这可能就是问题所在。如果您没有显式引用某个内部包,那么您正在使用的另一个包可能是。实际上,我只是在使用React 15.3.1时遇到了相同的错误,我正在使用React 15.0.0,如依赖项中所示。很抱歉,我对所有这些工作都不是很有信心,但是更新不应该像我现在拥有依赖项那样影响项目,对吗?npm将把^15.0.0解析为最新的包,直到版本16.0.0之前您的依赖项至少是React 15.0.0;如果您进行更新,它将获得最新信息。执行npm列表查看实际安装的版本。是的,如果React更新和您正在使用的其他模块没有更改以支持新的React版本,那么它会影响很多事情。您可以尝试React版本的
=15.3.2
,看看是否有帮助。手动编辑节点\u模块是个坏主意,更新后它们会再次中断。