HTML 更改后的 Webpack 不会实时重新加载
Webpack on HTML change does not Live Reload
我有以下 Webpack 配置。
const path = require('path');
const webpack = require('webpack');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
module.exports = {
devServer: {
contentBase: path.resolve(__dirname, 'dist'),
compress: true,
publicPath: 'dist',
writeToDisk: true,
open: true,
liveReload: true,
hotOnly: true,
},
entry: './src/js/app.js',
output: {
filename: 'app.js',
path: path.resolve(__dirname, 'dist/js'),
publicPath: 'dist',
},
module: {
rules: [
{
test: /\.(scss)$/,
use: [
{
loader: MiniCssExtractPlugin.loader,
},
{
loader: 'css-loader',
},
{
loader: 'postcss-loader',
options: {
plugins: function () {
return [require('autoprefixer')];
},
},
},
{
loader: 'sass-loader',
},
],
},
{
test: /\.(eot|woff|woff2|ttf|svg)(\?\S*)?$/,
use: [
{
loader: 'file-loader',
options: {
name: '[name].[ext]',
outputPath: '../fonts/',
publicPath: '../fonts/',
},
},
],
},
],
},
plugins: [
new MiniCssExtractPlugin({
filename: '../css/app.css',
}),
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery',
}),
],
};
当我编辑 HTML 文件时,它不会像 nodemon
那样重新加载浏览器
这些是我的脚本
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "webpack",
"start:dev": "webpack-dev-server --hot --mode development"
},
将devServer.watchContentBase
设置为true
,像这样:
module.exports = {
//...
devServer: {
watchContentBase: true
}
};
devServer.watchContentBase
boolean
Tell dev-server to watch the files served by the devServer.contentBase option. It is disabled by default. When enabled, file changes will trigger a full page reload.
(来自 https://webpack.js.org/configuration/dev-server/#devserverwatchcontentbase)
我有以下 Webpack 配置。
const path = require('path');
const webpack = require('webpack');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
module.exports = {
devServer: {
contentBase: path.resolve(__dirname, 'dist'),
compress: true,
publicPath: 'dist',
writeToDisk: true,
open: true,
liveReload: true,
hotOnly: true,
},
entry: './src/js/app.js',
output: {
filename: 'app.js',
path: path.resolve(__dirname, 'dist/js'),
publicPath: 'dist',
},
module: {
rules: [
{
test: /\.(scss)$/,
use: [
{
loader: MiniCssExtractPlugin.loader,
},
{
loader: 'css-loader',
},
{
loader: 'postcss-loader',
options: {
plugins: function () {
return [require('autoprefixer')];
},
},
},
{
loader: 'sass-loader',
},
],
},
{
test: /\.(eot|woff|woff2|ttf|svg)(\?\S*)?$/,
use: [
{
loader: 'file-loader',
options: {
name: '[name].[ext]',
outputPath: '../fonts/',
publicPath: '../fonts/',
},
},
],
},
],
},
plugins: [
new MiniCssExtractPlugin({
filename: '../css/app.css',
}),
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery',
}),
],
};
当我编辑 HTML 文件时,它不会像 nodemon
这些是我的脚本
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "webpack",
"start:dev": "webpack-dev-server --hot --mode development"
},
将devServer.watchContentBase
设置为true
,像这样:
module.exports = {
//...
devServer: {
watchContentBase: true
}
};
devServer.watchContentBase
boolean
Tell dev-server to watch the files served by the devServer.contentBase option. It is disabled by default. When enabled, file changes will trigger a full page reload.
(来自 https://webpack.js.org/configuration/dev-server/#devserverwatchcontentbase)