目录css
上节: 懒加载html
上节目录以下:webpack
css代码分割通常用于生产环境,先修改src/index.js:web
import './styles/index.less'; import _ from 'lodash'; const root = document.getElementById('root'); root.innerText = _.join(['hello', 'webpack']);
styles/index.less:npm
#root{ color: blue; }
而后npm run build,浏览器运行bundles/index.html:segmentfault
如今样式是经过style标签内联在页面上的。浏览器
如今修改配置,让样式经过link标签外部引入:
webpack/webpack.prod.js:less
const CleanWebpackPlugin = require('clean-webpack-plugin'); const merge = require('webpack-merge'); const baseConfig = require('./webpack.base'); const MiniCssExtractPlugin = require('mini-css-extract-plugin'); module.exports = merge(baseConfig, { mode: 'production', output: { filename: '[name].[contenthash:10].js' }, devtool: 'cheap-module-source-map', module: { rules: [{ test: /\.less$/, use: [{ loader: MiniCssExtractPlugin.loader, }, 'css-loader', 'postcss-loader', 'less-loader'] }] }, plugins: [ new MiniCssExtractPlugin({ filename: '[name].css', chunkFilename: '[id].css' }), new CleanWebpackPlugin() ], optimization: { splitChunks: { chunks: 'all' } } });
安装mini-css-extract-plugin:npm i mini-css-extract-plugin -Dpost
而后打包npm run build:ui
生成了单独的css文件,浏览器运行bundles/index.html, 打开f12:
这样就实现了link的外部引入
详细配置参考:https://webpack.js.org/plugin...
下节:编写一个loader