gpt4 book ai didi

reactjs - 关闭 webpack 上的热重载

转载 作者:行者123 更新时间:2023-12-05 07:48:49 25 4
gpt4 key购买 nike

我用 webpack 创建了一个 reactjs 应用程序。在本地一切正常。只需使用 npm start 即可。我想使用 webpack -p 命令为 prod 部署一个简单的包。它给了我一个 bundle.js 我附加了它,它也工作得很好。但它仍在寻找作为热重载配置的一部分运行的本地服务器。我改成了hot:false,但是还在找。

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

我只想关闭产品中的热重载。

最佳答案

那是因为你告诉 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 中的完整示例

关于reactjs - 关闭 webpack 上的热重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38127960/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com