2016-11-16 27 views
13

Vì vậy, tôi đã cố gắng đưa ứng dụng phản ứng-webpack của mình lên Heroku khi tôi bắt đầu gặp lỗi ReactMount không có tại React/lib/ReactMount. Sau đó, tôi đã thử rất nhiều công cụ khác nhau và cuối cùng đã cố gắng tạo ra một dự án mới với cùng một generater-webpack generater. Và bây giờ tôi nhận được cùng một sai lầm ngay cả khi chạy trên localhost có nghĩa là nó phải là do một bản cập nhật một nơi nào đó, phải không?Lỗi sau khi cập nhật: Không thể giải quyết mô-đun 'phản ứng/lib/ReactMount'

Có ai biết gì về điều này không?

Tôi có sự phụ thuộc như sau:

"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" 
+0

Bạn đang sử dụng phiên bản React nào? Họ đã phát hành phiên bản mới ngày hôm nay và đã thay đổi API nội bộ. Nội dung bên trong 'React/lib' được di chuyển xung quanh; nó không phải là một phần của API công khai và không được tham chiếu trực tiếp. Nếu bạn nâng cấp lên React 15.4, đó có thể là vấn đề. Nếu bạn không tham chiếu rõ ràng nội dung nào đó, một gói khác bạn đang sử dụng có thể là. –

+1

Tôi nghĩa đen chỉ có cùng một lỗi, sử dụng React 15.3.1 – Lutando

+0

Tôi đang sử dụng phản ứng 15.0.0 như được hiển thị trong các phụ thuộc. Tôi xin lỗi tôi không tự tin lắm trong tất cả các công trình này nhưng bản cập nhật không ảnh hưởng đến dự án với cách tôi có phụ thuộc của tôi ngay bây giờ, đúng không? –

Trả lời

0

gì làm việc cho tôi là để thay đổi đơn giản từ phản ứng:^15.0.0 đến 15.3.1.

0

Bạn cần cập nhật react để giải quyết vấn đề này. Trong trường hợp của tôi, tôi đã không sử dụng bộ nạp nóng. Một nâng cấp để phản ứng đã giải quyết vấn đề này. Hiện nay trên 15.4.0

-1

Đến node_modules/phản ứng nóng-loader/index.js và sử dụng cố gắng nắm bắt thay vì đòi hỏi

thay thế mã này

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(' '); 

mã mới sử dụng thử và nắm bắt để xử lý lỗi

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(' '); 

bạn có thể kiểm tra những thay đổi ở đây https://github.com/gaearon/react-hot-loader/pull/430/commits/4ff08252bd8bf90dbc89fc6d032f557825ec0300#diff-168726dbe96b3ce427e7fedce31bb0bc

+0

Chỉnh sửa node_modules theo cách thủ công là một ý tưởng tồi, sau khi cập nhật chúng sẽ lại bị phá vỡ. –

Các vấn đề liên quan