2016-06-30 7 views
1

webpackでreactjsアプリを作成しました。すべてがローカルでうまく動作します。 npm startを使うだけです。私はwebpack -pコマンドでprodのためのシンプルなパッケージを配備したいと思っています。それは私にバンドルを与えた.js私はそれを添付し、それもうまく動作します。しかし、それはまだホットリロード設定の一部として実行されている自分のローカルサーバーを探しています。私は熱く変わった:偽、それでもそれを探している。ここウェブパックのホットリロードをオフにする

は私のwebpack.config.js

var path = require('path'); 
var webpack = require('webpack'); 


module.exports = { 
    devtool: 'eval', 
    entry: [ 
    'webpack-dev-server/client?http://csd.local.com:3000', 
    'webpack/hot/only-dev-server', 
    './src/index' 
    ], 
    output: { 
    path: path.join(__dirname, 'dist'), 
    filename: 'bundle.js', 
    publicPath: '/static/' 
    }, 
    plugins: [ 
    new webpack.HotModuleReplacementPlugin(), 
    new webpack.DefinePlugin({'process.env.NODE_ENV': JSON.stringify('production')}) 

    ], 
    module: { 
    loaders: [{ 
     test: /\.js$/, 
     loaders: ['react-hot', 'babel'], 
     include: path.join(__dirname, 'src') 
    }, 
    { test: /\.scss$/, 
     loaders: ["style", "css", "sass"], 
     include: path.join(__dirname, 'src') 
    } 
    ] 
    } 
}; 

であり、ここで私が欲しいのは、PRODでホットリロードをオフにしている私のserver.js

var webpack = require('webpack'); 
var WebpackDevServer = require('webpack-dev-server'); 
var config = require('./webpack.config'); 
new WebpackDevServer(webpack(config), { 
    publicPath: config.output.publicPath, 
    hot: false, 
    historyApiFallback: true 
}).listen(3000, 'localhost', function (err, result) { 
    if (err) { 
    return console.log(err); 
    } 

    console.log('Listening at http://csd.local.com:3000/'); 
}); 

です。

'webpack-dev-server/client?http://csd.local.com:3000', 
'webpack/hot/only-dev-server',**strong text** 

ソリューションは、あなたが「開発」又は「製造」環境にいる天気を検出するために、次のようになります。あなたのアプリと一緒にHMREのクライアント側のスクリプトをバンドルするWebPACKのを言っているので、だ

答えて

0

。これを行うには、 "yargs"を使用してcli引数を解析することができます(Webpackの依存関係なので、インストールする必要はありません)。結果を使用して動的に構成を構築します。

var production = require('yargs').argv.p; 

http://pastie.org/10895795

で完全な例を参照してください。
関連する問題