2016-05-03 7 views
0

webpack-dev-serverを使用している場合、React RouterのbrowserHistoryから自動的にhashHistoryに切り替える方法はありますか?私は頻繁に得ることができません/ routenameページがリフレッシュするとエラーが発生します。手動でhashHistoryに切り替えることでこの問題を回避することができますが、私が開発中であるか生産中であるかによって、自動的にこれを前後に切り替える良い方法があるのだろうかと思います。Webpack開発者サーバーでbrowserHistoryからプログラムでhashHistoryに切り替える方法はありますか?

私webpack.prod.config.js

const config = require('./webpack.config.js'); 
const webpack = require('webpack'); 

config.plugins.push(
    new webpack.DefinePlugin({ 
    "process.env": { 
     "NODE_ENV": JSON.stringify("production") 
    } 
    }) 
); 

config.plugins.push(
    new webpack.optimize.UglifyJsPlugin({ 
    compress: { 
     warnings: false 
    } 
    }) 
); 

module.exports = config; 

マイルータ

render((
    <Router history={browserHistory}> 
    {/** ###### HOME ROUTE ###### */} 
    <Route path="/" component={Home} /> 
    <Route path="/company" component={Company} /> 
    <Route path="/help" component={Help} /> 
    <Route path="/features" component={Features} /> 
    <Route path="/signup" component={SignUp} /> 
    <Route path="/work" component={Work} /> 
    {/** ###### END HOME ROUTES ###### */} 
    </Router> 
), document.getElementById('root')); 

答えて

1

あなたの歴史を設定する前に、この

import { Router, Route, browserHistory,hashHistory IndexRoute } from 'react-router' 

let history = process.env.NODE_ENV === "production" ? browserHistory : hashHistory; 


render((
    <Router history={history}> 
    {/** ###### HOME ROUTE ###### */} 
    <Route path="/" component={Home} /> 
    <Route path="/company" component={Company} /> 
    <Route path="/help" component={Help} /> 
    <Route path="/features" component={Features} /> 
    <Route path="/signup" component={SignUp} /> 
    <Route path="/work" component={Work} /> 
    {/** ###### END HOME ROUTES ###### */} 
    </Router> 
), document.getElementById('root')); 
のようなものをお使いNODE_ENV変数を確認することができます
関連する問題