2015-11-29 23 views
8

Tôi nhận được các lỗi sau đây với phản ứng-router, các lỗi của nó đề cập đến ngoại hình như nó nằm ngoài mã ứng dụng của tôi, nhưng với thư viện phản ứng-router chính nó:Webpack babel es6 cho tôi lỗi với mô-đun 1.0 "không tìm thấy mô-đun phản ứng-router"?

ERROR in ./~/react-router/lib/Router.js 
Module not found: Error: Cannot resolve module 'history/lib/createHashHistory' in /Users/kmartinez/apache/www/reactroutesample/node_modules/react-router/lib 
@ ./~/react-router/lib/Router.js 25:35-75 

ERROR in ./~/react-router/lib/useRoutes.js 
Module not found: Error: Cannot resolve module 'history/lib/Actions' in /Users/kmartinez/apache/www/reactroutesample/node_modules/react-router/lib 
@ ./~/react-router/lib/useRoutes.js 15:25-55 

ERROR in ./~/react-router/lib/useRoutes.js 
Module not found: Error: Cannot resolve module 'history/lib/useQueries' in /Users/kmartinez/apache/www/reactroutesample/node_modules/react-router/lib 
@ ./~/react-router/lib/useRoutes.js 17:28-61 

ERROR in ./~/react-router/lib/match.js 
Module not found: Error: Cannot resolve module 'history/lib/createMemoryHistory' in /Users/kmartinez/apache/www/reactroutesample/node_modules/react-router/lib 
@ ./~/react-router/lib/match.js 13:37-79 

ERROR in ./~/react-router/lib/match.js 
Module not found: Error: Cannot resolve module 'history/lib/useBasename' in /Users/kmartinez/apache/www/reactroutesample/node_modules/react-router/lib 
@ ./~/react-router/lib/match.js 17:29-63 

Mọi thứ đã được làm việc khi tôi đang sử dụng cú pháp "JSX", nhưng ngay khi tôi thêm vào "babel-es2015-preset" vào webpack của tôi và muốn bắt đầu chuyển sang ES6/ES2015, tôi đã nhận được các lỗi ở trên. Đưa cái gì?

module.exports = { 
    entry: './app/App.js', 
    output: { 
     filename: 'public/bundle.js', 
    }, 
    module: { 
     loaders: [ 
      { 
       test: /\.jsx?$/, 
       exclude: /(node_modules|bower_components)/, 
       loader: 'babel', 
       query: { 
        presets: ['es2015','react'] 
       } 

      } 
     ] 
    } 
} 

Tôi đang sử dụng phiên bản mới nhất của phản ứng-bộ định tuyến, phản ứng và babel. Package.json chứa sau:

"babel-core": "^6.2.1", 
    "babel-loader": "^6.2.0", 
    "babel-preset-es2015": "^6.1.18", 
    "react-dom": "^0.14.3", 
    "webpack": "^1.12.9", 
"react": "^0.14.3", 
    "react-dom": "^0.14.3", 
    "react-router": "^1.0.0", 
"babel-preset-react": "^6.1.18", 

mã hiện tại của tôi chứa cả cú pháp JSX trong một số tác phẩm, và cú pháp nhập khẩu ES6/ES2015 trong những người khác. Nếu có bộ bộ tải tốt hơn hoặc nếu tôi định cấu hình sai gói webpack, vui lòng thông báo!

Các dòng duy nhất tôi có trong App.js của tôi là:

import React from 'react'; 
import ReactDOM from 'react-dom'; 
import {Router, Route} from 'react-router'; 

Nếu tôi nhận xét ra rằng dòng thứ ba, sau đó các lỗi đầu tiên nêu ra đi, nhưng tôi cần phải sử dụng phản ứng-router!

Trả lời

24

Im giả sử bạn sử dụng npm 3+. Và tài liệu cài đặt của React Router có trạng thái:

Lưu ý rằng bạn cũng cần phải cài đặt gói lịch sử vì nó phụ thuộc ngang hàng với Router phản ứng và sẽ không tự động được cài đặt cho bạn trong npm 3+.

Chạy npm install history và bạn nên khỏe.

0

Các lỗi cho bạn biết vấn đề:

Không thể giải quyết module 'lịch sử/lib/createHashHistory'

react-router phụ thuộc vào history mô-đun here và dường như bạn không có nó được cài đặt .

có khả năng dễ dàng nhất để

rm -rf node_modules 
npm install 

để đảm bảo tất cả các phụ thuộc của bạn được cài đặt đúng cách.

+0

Tại sao tính năng này chỉ hoạt động với JSX? – Rolando

+0

'lịch sử' là sự phụ thuộc của 'phản ứng-bộ định tuyến'. Nếu bạn không nhập nó, nó sẽ không ném lỗi. – loganfsmyth

+1

Tôi đã cài đặt lịch sử nhưng lỗi này vẫn hiển thị. Giờ tôi không còn ý tưởng nữa. Bạn có bất kỳ gợi ý nào khác cho vấn đề này không? –

-1

Đó là lỗi nút. Nó đã được cố định bằng cách đi vào project/node_modules/react-router/ và chạy npm install history.

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