【发布时间】:2021-05-17 11:20:14
【问题描述】:
这是我第一次在 React 项目中配置 webpack。我已将 Sass 和 glob 加载器配置为从我的组件文件夹中动态导入所有 SCSS 文件。 问题是所有样式都附加在头部的全局样式标签中。如何为我的项目创建一个缩小的 CSS 文件。我尝试使用 MiniCSSExtract 插件,但我不知道它是否用于创建项目样式的缩小文件。 我在下面发布了我的 webpack.config.js 文件。
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
var HtmlWebpackPluginConfig = new HtmlWebpackPlugin({
template: __dirname + '/public/index.html',
filename: 'index.html',
inject: 'body'
});
module.exports = {
entry: ['./src/main.js', './src/main.scss'],
output: {
path: path.join(__dirname, '/dist'),
filename: 'bundle.js',
publicPath: '/'
},
devServer: {
inline: false,
contentBase: "./dist",
port: 8001
},
module: {
rules: [
{
test: /\.jsx?$/,
exclude: /node_modules/,
loader: 'babel-loader',
},
{
test: /\.js$/,
use: 'webpack-import-glob-loader'
},
{
test: /\.scss$/,
use: ['style-loader', 'css-loader', 'sass-loader', 'webpack-import-glob-loader']
},
{
test: /\.json$/,
loader: 'json'
},
{
test: /\.css$/i,
use: [MiniCssExtractPlugin.loader, 'style-loader', 'css-loader'],
}
]
},
devServer: {
historyApiFallback: true
},
plugins:[
new MiniCssExtractPlugin(),
HtmlWebpackPluginConfig
]
}
这是我的 index.html,我在其中添加了由 webpack 创建的 bundle.js。
<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "UTF-8">
<title>React App</title>
</head>
<body>
<div id="app"></div>
<script src='bundle.js'></script>
</body>
</html>
【问题讨论】:
-
“MiniCSSExtract 插件”正是您所需要的。
-
@ASDFGerte 感谢您指出正确的方向。
标签: javascript css reactjs webpack