2016-06-30 73 views
1

我用webpack創建了reactjs應用程序。一切工作正常在當地。只需使用npm start即可。我想用webpack -p命令部署一個簡單的prod包。它給了我一個bundle.js我附加它,它也可以很好地工作。但它仍在尋找我的本地服務器作爲熱重載配置的一部分運行。我改變了熱點:假,但它仍然在尋找它。關閉webpack上的熱重裝

這裏是我的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') 
    } 
    ] 
    } 
}; 

這裏是我的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/'); 
}); 

所有我想要的是,關閉熱重載的刺。

回答

0

那是因爲你告訴的WebPack與應用捆綁HMRE的客戶端腳本一起:

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

的解決辦法是,以檢測無論您在「發展」或「生產」環境是。要做到這一點,你可以使用「yargs」來解析你的cli參數(這是一個webpack的依賴,所以你甚至不需要安裝它),並使用結果來動態構建你的配置。

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

http://pastie.org/10895795

看到一個完整的例子