1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- 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()
- ]
- }
- };
|