webpack中css文件的代码分割
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了webpack中css文件的代码分割,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3578字,纯文字阅读大概需要6分钟。
内容图文
module.exports = { output: { filename: ‘[name].js‘, chunkFilename: ‘[name].chunk.js‘, path: path.resolve(__dirname, ‘../dist‘) } }
在看别人写的webpack,output配置项,肯跟会碰到chunkFilename这样的配置项,那这个是什么意思呢?filename和chunkFilename有什么区别呢?首先看个例子
<! DOCTYPE html > < html lang ="en" > < head > < meta charset ="UTF-8" > < meta name ="viewport" content ="width=device-width, initial-scale=1.0" > < meta http-equiv ="X-UA-Compatible" content ="ie=edge" > < title >html template</title></head><body><div id=‘root‘></div></body></html>
index.js
async function getComponent() { const { default: _ } = await import(/* webpackChunkName:‘lodash‘ */‘lodash‘); const element = document.createElement(‘div‘); element.innerHTML = _.join([‘1‘, ‘2‘], ‘-‘); return element } document.addEventListener(‘click‘, ()=> { getComponent().then( element =>{ document.body.appendChild(element); }) })
webpack.common.js
module.exports = { entry: { main: ‘./src/index.js‘ }, output: { filename: ‘[name].js‘, chunkFilename: ‘[name].chunk.js‘, path: path.resolve(__dirname, ‘../dist‘) } }
运行npm run dev-build打包。打开dist目录,发现第三方模块打包好的名字叫vendors~lodash.chunk.js,不再是之前的vendors~lodash.js。我们的入口文件对应的都是filename的输出。如果不是入口文件,是异步引入或者间接产生的js文件,他就会走chunkFilename这个输出的配置参数。
<! DOCTYPE html > < html lang ="en" > < head > < meta charset ="UTF-8" > < meta name ="viewport" content ="width=device-width, initial-scale=1.0" > < meta http-equiv ="X-UA-Compatible" content ="ie=edge" > < title >html template</title></head><body><div id=‘root‘></div></body></html>
index.js
import ‘./style.css‘;
console.log(‘ hello world ‘);
style.css
body{ background: #abcdef; }
https://webpack.js.org/plugins/mini-css-extract-plugin
npm install --save-dev mini-css-extract-plugin
const merge = require(‘webpack-merge‘); const commonConfig = require(‘./webpack.common.js‘); const MiniCssExtractPlugin = require(‘mini-css-extract-plugin‘); const prodConfig = { mode: ‘production‘, devtool: ‘cheap-module-source-map‘, module: { rules:[{ test: /\.scss$/, use: [ MiniCssExtractPlugin.loader, { loader: ‘css-loader‘, options: { importLoaders: 2 } }, ‘sass-loader‘, ‘postcss-loader‘ ] },{ test: /\.css$/, use: [ MiniCssExtractPlugin.loader, ‘css-loader‘, ‘postcss-loader‘ ] }] }, plugins:[ new MiniCssExtractPlugin({}) ] } module.exports = merge(commonConfig, prodConfig);
然后对应到webpack.common.js里面删除css,scss相关到配置。运行npm run build。发现多出了两个文件main.css 和 main.css.map
npm install optimize-css-assets-webpack-plugin -D
const OptimizeCSSAssetsPlugin = require(‘optimize-css-assets-webpack-plugin‘); module.exports = { optimization: { minimizer: [new OptimizeCSSAssetsPlugin({})], }, }
https://webpack.js.org/plugins/mini-css-extract-plugin
optimization: { splitChunks: { cacheGroups: { styles: { name: ‘styles‘, test: /\.css$/, chunks: ‘all‘, enforce: true, // 忽略到前面到配置,不管是minSize,maxSize等等,只要是css,都打包到同一个文件中}, }, }, },
原文:https://www.cnblogs.com/wzndkj/p/10849535.html
内容总结
以上是互联网集市为您收集整理的webpack中css文件的代码分割全部内容,希望文章能够帮你解决webpack中css文件的代码分割所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。