我可以使用webpack --watch
命令通过webpack成功编译sass,但是它不执行热模块替换。
我能够使用webpack-dev-server --hot --progress --colors --inline
命令成功完成HMR,并且会重新加载我的.js
更改,但不会重新加载我的.scss
/ .css
。
我注意到,当我更改一个sass文件时,服务器会刷新,但是样式不会更新。我想确保只用一个命令即可完成操作。
这是我package.json中的脚本
"scripts": {
"build": "webpack -p","watch": "webpack --watch","start": "webpack-dev-server --hot --progress --colors --inline"
},
这是我的整个webpack配置:
const ExtractTextPlugin = require("extract-text-webpack-plugin");
const webpack = require('webpack');
const path = require("path");
module.exports = {
entry: {
master: "./src/index.jsx"
},output: {
path: path.resolve(__dirname,"dist"),filename: "[name].js"
},module: {
rules: [
{
test: /\.scss$/,use: ExtractTextPlugin.extract({
fallback: "style-loader",use: ["css-loader","sass-loader"],publicPath: "dist"
})
},{
test: /\.jsx?$/,exclude: /node_modules/,use: "babel-loader"
},]
},resolve: {
extensions: [".js",".jsx"]
},plugins: [
new ExtractTextPlugin({
filename: "master.css",allChunks: true
}),new webpack.HotModuleReplacementPlugin()
],devserver: {
contentBase: './dist',hot: true,port: 3000,host: '0.0.0.0',inline: true,disableHostCheck: true,}
};
,如果有必要,这是我的.babelrc(我正在使用React):
{
"presets": [
"@babel/preset-env","@babel/preset-react"
],"plugins": [
"@babel/plugin-transform-runtime","react-hot-loader/babel"
]
}
我如何在更改Webpack开发服务器时重新加载经过编译的sass更改?