我在开发环境中使用docker,在macOS上更换热模块。我可以成功运行我的应用程序,当更改文件时,webpack热重新加载实际上可以获取更改。但是,重新编译始终在此步骤失败,并显示以下错误消息:
webpack.config
这是我的webpack配置:
const webpack = require('webpack');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
mode: 'development',
entry: './src/index.js',
output: {
path: __dirname,
filename: 'bundle.[hash].js',
//publicPath: '/'
},
devtool: 'inline-source-map',
module: {
rules: [
{
test: /\.(js)$/,
exclude: /node_modules/,
use: ['babel-loader']
},
{
test: /\.css$/,
use: [
{
loader: 'style-loader'
},
{
loader: 'css-loader',
options: {
modules: true,
camelCase: true,
sourceMap: true
}
}
]
}
]
},
plugins: [
new webpack.HotModuleReplacementPlugin(),
new HtmlWebpackPlugin({
template: 'dist/index.html',
})
],
devServer: {
host: '0.0.0.0',
contentBase: './dist',
port: 8080,
historyApiFallback: true,
open: true,
hot: true
},
watchOptions: { poll: true }
};
的package.json
我的package.json文件:
{
"scripts": {
"start": "webpack-dev-server"
},
"devDependencies": {
"babel-core": "^6.26.0",
"babel-loader": "^7.1.4",
"babel-preset-env": "^1.6.1",
"babel-preset-es2015": "^6.24.1",
"babel-preset-stage-1": "^6.24.1",
"babel-preset-stage-2": "^6.24.1",
"css-loader": "^0.28.11",
"react-hot-loader": "^4.0.1",
"style-loader": "^0.20.3",
"webpack": "^4.5.0",
"webpack-cli": "^2.0.14",
"webpack-dev-server": "^3.1.2"
},
"dependencies": {
"babel-cli": "^6.26.0",
"babel-preset-react": "^6.24.1",
"html-webpack-plugin": "^3.2.0",
"react": "^16.3.1",
"react-dom": "^16.3.1",
"react-prop-types": "^0.4.0",
"react-router-dom": "^4.2.2",
"semantic-ui-react": "^0.79.1"
}
}
执行的命令
要运行应用程序,请使用以下命令行。它创建一个与docker同步的卷,并使用“start”命令启动dev服务器,执行 webpack-dev-server 。我可以访问和使用应用程序,但没有热重新加载没有上面的错误消息。
docker run --rm -i -t -v /Path/to/folder:/app -p 8080:8080 jmfirth/webpack yarn start
答案 0 :(得分:0)
<强>更新强> 问题现已解决。
基于this issue及其讨论,这似乎是最新的webpack-dev-servers热模块与webpack 4.5.0相结合的问题。
通过将webpack-dev-server降级到版本3.0.0已解决了该问题,但webpack-dev-server存储库中仍有open issue。