2015-11-29 26 views
8

私が反応し、ルータと次のエラーを取得しています、それはしかし、反応-ルータライブラリ自体と、自分のアプリケーションのコードの外にあるように、そのルックスを参照エラー:私が使っていたとき反応ルータ1.0の「モジュールが見つかりません」というWebpack babel es6にエラーがありますか?

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 

すべてが働いていました"JSX"構文ですが、 "babel-es2015-preset"をwebpackに追加してES6/ES2015に切り替えるとすぐに、上記のエラーが表示されます。何がありますか?

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'] 
       } 

      } 
     ] 
    } 
} 

私は反応ルータ、反応、およびバベルの最新のバージョンを使用しています。

"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", 

私の現在のコードには、いくつかのファイルにはJSXの構文が含まれていますが、他にはES6/ES2015のインポート構文が含まれています。より良いローダーセットがある場合や、webpackを誤って設定した場合は、アドバイスをお願いします。私App.jsで私が持っている

のみ行は、次のとおりです。私はその第三行をコメントアウトした場合

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

、最初に述べたエラーが離れて行くが、私は反応し、ルータを使用する必要があります!

答えて

24

あなたがnpm 3+を使用していると仮定します。そしてReact Routerのインストールドキュメントの状態:

ヒストリパッケージはReact Routerのピア依存関係であり、自動的にnpm 3+にインストールされないため、インストールする必要があります。

実行npm install historyとするとよいでしょう。

0

エラーがあなたの問題を教えて:

は、モジュールを解決できませんの歴史/ libに/ createHashHistory「

react-routerhistoryモジュールhereに依存し、あなたがそれをインストールしていないことが表示されます。

すべての依存関係が正しくインストールされていることを確認する

rm -rf node_modules 
npm install 

に対して潜在的に最も簡単。

+0

これはJSXでのみ動作するのはなぜですか? – Rolando

+0

'history'は' react-router'の依存関係です。インポートしないと、エラーはスローされません。 – loganfsmyth

+1

私はすでに履歴をインストールしていますが、このエラーは引き続き表示されます。私は今考えています。この問題のヒントはありますか? –

-1

ノードエラーです。 project/node_modules/react-router/に入り、npm install historyを実行することで修正されました。

関連する問題