Запуск webpack-dev-server с горячей перезагрузкой, каждый раз, когда я меняю файл scss, перекомпиляция занимает более 3 секунд, в то время как js / html перекомпилируется менее чем за 1 секунду. Я не мог понять, почему.
Вот мой конфиг:
webpack.common.js
const path = require("path");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const CleanWebpackPlugin = require("clean-webpack-plugin");
const CopyWebpackPlugin = require("copy-webpack-plugin");
module.exports = {
entry: {
index: "./webpack.entry.js",
style: "./app/scss/main/app.scss"
},
module: {
rules: [
{
test: /\.js$/,
use: {
loader: "babel-loader",
options: {
presets: ["@babel/preset-env"],
cacheDirectory: true
}
}
}
]
},
plugins: [
new CleanWebpackPlugin(["dist"]),
new HtmlWebpackPlugin({
template: "./app/html/index.html"
})
],
output: {
path: path.resolve(__dirname, "dist")
}
};
webpack.dev.js
const webpack = require("webpack");
const merge = require("webpack-merge");
const common = require("./webpack.common.js");
module.exports = merge(common, {
devtool: "cheap-module-eval-source-map",
devServer: {
contentBase: "./dist",
port: 9000,
hot: true
},
module: {
rules: [
{
test: /\.scss$/,
use: [
{
loader: "style-loader"
},
{
loader: "css-loader",
options: {
sourceMap: true,
url: false
}
},
{
loader: "sass-loader",
options: {
sourceMap: true
}
}
]
}
]
},
plugins: [new webpack.HotModuleReplacementPlugin()],
output: {
filename: "[name].js"
},
mode: "development"
});
app.scss - это группа импорта scss, которая может привести к другой группе импорта scss.
@import "../base";
@import "../layout";
@import "../modules";
@import "../state";
@import "../3rdparty";
/* components */
@import "../../component/footer/footer";
@import "../../component/switcher/switcher";
@import "../../component/header/header";
@import "../../component/dropdown/dropdown";
@import "../../component/lgntabset/lgntabset";
@import "../../component/lgnprogressstep/lgnprogressstep";
@import "../../component/lgnwizard/lgnwizard";
@import "../../component/lgnslider/lgnslider";
@import "../../component/lgndropdown/lgndropdown";
@import "../../component/lgnmodal/lgnmodal";
@import "../../component/calendar/weeklycalendar/calendarwidget";
Как мне улучшить время перекомпиляции scss?