Webpack 样式加载器与 mini-css-extract-plugin
Webpack style-loader vs mini-css-extract-plugin
更新
写下这些句子后,我给了自己答案。使用 style-loader
我不需要先构建,我什至可以检查我的存储库并启动 webpack-dev-server。这是正确的吗?
不过,还有第二个问题。
我有一个 Spring- 使用 thymeleaf 和 webpack 的启动应用程序。
在我的 startpage.html
中,我通过 link 标签包含了一个样式表:
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<link rel="stylesheet" th:href="@{/css/startpage.css}"/>
</head>
...
<script th:src="@{/js/startpage.js}"></script>
</body>
</html>
我想改进应用程序,因此我正在关注此 tutorial。我已将 webpack.config 文件分为开发和生产部分。
开发部分使用 webpack style-loader
,生产部分使用 mini-css-extract-plugin
。
webpack.dev.config
...
module: {
rules: [
{
test: /\.scss$/,
use: ["style-loader", "css-loader", "sass-loader"]
}
]
}
webpack.prod.config
module: {
rules: [
{
test: /\.scss$/,
exclude: /printView\.scss$/,
use: [
MiniCssExtractPlugin.loader,
"css-loader",
"postcss-loader",
"sass-loader"
]
}
]
},
plugins: [
new MiniCssExtractPlugin({
filename: "css/[name].css",
chunkFilename: "css/[name].css"
})
]
我已经知道这些工具在做什么。在 style-loader
的帮助下,我可以通过我的 js 文件导入我的 css:
startpage.js
import "../css/startpage.scss";
因此我不需要在 html 中明确地写 link-标签 <link rel="stylesheet" th:href="@{/css/startpage.css}"/>
。
但是,我有一个巨大的 css 文件,每次我在开发模式下短时间内重新加载我的一侧时,我的 html 没有样式,这会导致以下 problem (html 短时间内未设置样式)。
现在我在问为什么我什至应该使用 style-loader
而不是直接插入 link
标签并使用 mini-css-extract-plugin
?有什么好处?
其次,我想问我是否可以更快地加载 style-loader
生成的样式?
写完这些句子我给了自己答案。使用 style-loader 我不需要先构建,我什至可以检查我的存储库并启动 webpack-dev-server。
编辑:一些有用的东西link
更新
写下这些句子后,我给了自己答案。使用 style-loader
我不需要先构建,我什至可以检查我的存储库并启动 webpack-dev-server。这是正确的吗?
不过,还有第二个问题。
我有一个 Spring- 使用 thymeleaf 和 webpack 的启动应用程序。
在我的 startpage.html
中,我通过 link 标签包含了一个样式表:
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<link rel="stylesheet" th:href="@{/css/startpage.css}"/>
</head>
...
<script th:src="@{/js/startpage.js}"></script>
</body>
</html>
我想改进应用程序,因此我正在关注此 tutorial。我已将 webpack.config 文件分为开发和生产部分。
开发部分使用 webpack style-loader
,生产部分使用 mini-css-extract-plugin
。
webpack.dev.config
...
module: {
rules: [
{
test: /\.scss$/,
use: ["style-loader", "css-loader", "sass-loader"]
}
]
}
webpack.prod.config
module: {
rules: [
{
test: /\.scss$/,
exclude: /printView\.scss$/,
use: [
MiniCssExtractPlugin.loader,
"css-loader",
"postcss-loader",
"sass-loader"
]
}
]
},
plugins: [
new MiniCssExtractPlugin({
filename: "css/[name].css",
chunkFilename: "css/[name].css"
})
]
我已经知道这些工具在做什么。在 style-loader
的帮助下,我可以通过我的 js 文件导入我的 css:
startpage.js
import "../css/startpage.scss";
因此我不需要在 html 中明确地写 link-标签 <link rel="stylesheet" th:href="@{/css/startpage.css}"/>
。
但是,我有一个巨大的 css 文件,每次我在开发模式下短时间内重新加载我的一侧时,我的 html 没有样式,这会导致以下 problem (html 短时间内未设置样式)。
现在我在问为什么我什至应该使用 style-loader
而不是直接插入 link
标签并使用 mini-css-extract-plugin
?有什么好处?
其次,我想问我是否可以更快地加载 style-loader
生成的样式?
写完这些句子我给了自己答案。使用 style-loader 我不需要先构建,我什至可以检查我的存储库并启动 webpack-dev-server。
编辑:一些有用的东西link