我用webpack创建了一个reactjs应用程序。当地的一切都很好。只需使用npm start。我想用webpack -p命令为prod部署一个简单的包。它给了我一个bundle.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')
}
]
}
};
这是我的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 :(得分: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;
上的完整示例