Webpack babel es6给出了错误的反应路由器1.0"未找到模块"?

Rol*_*ndo 8 ecmascript-6 reactjs webpack

我在使用react-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
Run Code Online (Sandbox Code Playgroud)

当我使用"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']
                }

            }
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用反应路由器,反应和babel的最新版本.Package.json包含以下内容:

    "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",
Run Code Online (Sandbox Code Playgroud)

我当前的代码在某些文件中包含JSX语法,在其他文件中包含ES6/ES2015导入语法.如果有一套更好的装载机或我错误配置了webpack,请指教!

我在App.js中唯一的行是:

import React from 'react';
import ReactDOM from 'react-dom';
import {Router, Route} from 'react-router';
Run Code Online (Sandbox Code Playgroud)

如果我注释掉第三行,那么首先提到的错误就会消失,但我需要使用react-router!

enj*_*ife 24

我假设你使用npm 3+.和React Router的安装文档说明:

请注意,您还需要安装历史记录包,因为它是React Router的对等依赖项,并且不会在npm 3+中自动为您安装.

npm install history,你应该好.