const HtmlWebpackPlugin = require('html-webpack-plugin'); const MiniCssExtractPlugin = require("mini-css-extract-plugin");//将CSS代码提取为独立文件的插件 const OptimizeCssAssetsPlugin = require("optimize-css-assets-webpack-plugin");//CSS模块资源优化插件 const path = require('path'); module.exports = { entry: './src/index.tsx', mode: 'development', resolve: { extensions: ['.ts', '.tsx', '.js', '.json'] }, output: { path: path.join(__dirname, '/dist'), filename: 'bundle.min.js' }, module: { rules: [ { test: /\.tsx?$/, use: [ 'ts-loader' ] }, { test: /\.scss?$/, use: [ // 'style-loader', { loader: MiniCssExtractPlugin.loader//建议生产环境采用此方式解耦CSS文件与js文件 }, { loader: 'css-loader', options: { importLoaders: 2 } }, "postcss-loader", 'sass-loader', { loader: 'sass-resources-loader', options: { resources: './src/styles/resources.scss' } } ] } ] }, plugins: [ new HtmlWebpackPlugin({ template: "./src/index.html" }), new MiniCssExtractPlugin({ filename: "[name].css" }) //为抽取出的独立的CSS文件设置配置参数 ], optimization: { //对生成的CSS文件进行代码压缩 mode='production'时生效 minimizer: [ new OptimizeCssAssetsPlugin() ] } };