Webpack4 学习笔记二 CSS模块转换
前言
此内容是个人学习笔记,以便日后翻阅。非教程,如有错误还请指出
webpack 打包css模块
webpack是js模块打包器, 如果在入口文件引入css文件或其它的less、sass等文件,需要特定的 loader去解析它们。
css-loader
: 解析css文件并且支持@import()等引入css模块
style-loader
: 通过插入 <style>
标记将CSS添加到DOM中
webpack 处理loader的是 module{}, 不要写成 loader: {}
rules: 加载器规则
test: 规则
use: 用什么 loader(加载器)
webpack 配置如下
module.exports = {...module: {rules: [{test: /\.css$/,use: ['style-loader', 'css-loader']}]}}
注意: use中的loader的执行顺序是从右到左, 先使用 css-loader解析css,再使用 style-loader将解析完的css插入DOM文档中
单独抽离css文件样式以及优化CSS文件
我想将解析后的css单独抽离出一个 css文件, 然后通过 like标签的形式引入。
需要使用插件来帮忙, plugins主要是做 loader完成不了的事情。功能很强大。
mini-css-extract-plugin
: 此插件将CSS提取到单独的文件中。
- 先安装
- const MixiCssExtractPlugin = require('mini-css-extract-plugin')
webpack配置如下, 基与上面的代码修改
module.exports = {...module: {rules: [{test: /\.css$/,use: [MixiCssExtractPlugin.loader,'css-loader']}]},plugins: [new MixiCssExtractPlugin({filename: "[name].css",chunkFilename: "[id].css"})]}
处理 sass文件
需要安装 sass sass-loader
webpack 配置如下
module.exports = {...module: {rules: [{test: /\.css$/,use: [MixiCssExtractPlugin.loader,'css-loader','sass-loader']}]},plugins: [new MixiCssExtractPlugin({filename: "[name].css",chunkFilename: "[id].css"})]}
优化压缩 css文件和js文件
上面虽然已经可以把 css 单独抽离成一个 css文件, 但是代码并没有得到压缩, 下面进行压缩等优化处理
安装插件:
optimize-css-assets-webpack-plugin
: 用于优化\最小化CSS资产的Webpack插件
uglifyjs-webpack-plugin
: 用于优化 js资产的 Webpack插件
webpack 配置:
const OptimizeCssAddetsWebpackPlugin = require('optimize-css-assets-webpack-plugin')
const UglifyjsWebpackPlugin = require('uglifyjs-webpack-plugin')
module.exports = {mode: 'production',optimization: {minimizer: [new UglifyjsWebpackPlugin({test: /\.js(\?.*)?$/i,cache: true,parallel: true, // 并行化可以显著加速构建,因此强烈建议设置为 truesourceMap: true, // 使用源映射,将错误信息位置映射到模版}),// 使用压缩css插件之前,一定要使用 uglifyjs-webpack-plugin插件对js代码进行压缩new OptimizeCssAddetsWebpackPlugin({}),]},module: {rules: [{test: /\.css$/,use: [MixiCssExtractPlugin.loader,'css-loader','sass-loader']}]},plugins: [new MixiCssExtractPlugin({filename: "[name].css",chunkFilename: "[id].css"})]}
笔记地址
转载于:https://www.cnblogs.com/qiqingfu/p/10290190.html
Webpack4 学习笔记二 CSS模块转换相关推荐
- java 模块设计模式_Java9模块化学习笔记二之模块设计模式
模块设计的原则: 1.防止出现编译时循环依赖(主要是编译器不支持),但运行时是允许循环依赖的,比如GUI应用 2.明确模块的边界 几种模块设计: API模块,聚合模块(比如java.base) 可选依 ...
- css中怎么加入立体模型,CSS学习笔记二:css 画立体图形
继上一次学了如何去运用css画平面图形,这一次学如何去画正方体,从2D向着3D学习,虽然有点满,但总是一个过程,一点一点积累,然后记录起来. Transfrom3D 在这一次中运用到了一下几种属性: ...
- pythonsze_python学习笔记二 数据类型(基础篇)
Python基础 对于Python,一切事物都是对象,对象基于类创建 不同类型的类可以创造出字符串,数字,列表这样的对象,比如"koka".24.['北京', '上海', '深圳' ...
- ASP.NET MVC 2 学习笔记二: 表单的灵活提交
ASP.NET MVC 2 学习笔记二: 表单的灵活提交 前面说到有做到公司内部的一个请假系统,用的是ASP.NET MVC 2+Entity Framework.虽然EF(Entity Frame ...
- python学习笔记4(模块
python学习笔记4(模块) 一.模块 1.1 import语句 1.2 __name__属性 1.3 dir()函数 1.4 包 2.1 导入特定模块: 二.输入与输出 2.1 format使用 ...
- qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等)
原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7851 ...
- Webpack4 学习笔记 - 01:webpack的安装和简单配置
安装 webpack 新建一个Demo文件夹,执行初始化: npm init 在Demo文件夹里安装 webpack 和 webpack-cli : npm install webpack webpa ...
- PyTorch学习笔记(二)——回归
PyTorch学习笔记(二)--回归 本文主要是用PyTorch来实现一个简单的回归任务. 编辑器:spyder 1.引入相应的包及生成伪数据 import torch import torch.nn ...
- 好程序员web前端分享Nodejs学习笔记之Stream模块
好程序员web前端分享Nodejs学习笔记之Stream模块 一,开篇分析 流是一个抽象接口,被 Node 中的很多对象所实现.比如对一个 HTTP 服务器的请求是一个流,stdout 也是一个流.流 ...
最新文章
- 盘点 HashMap 源码中的那些优雅的设计!
- 利用Attribute特性简化多查询条件拼接sql语句的麻烦
- activity 点击后传递数据给fragment_【磨叽教程】Android进阶之Fragment的管理以及事务执行...
- How to add jdk8 in Eclipse Indigo
- css3中的新特性经典应用
- python默认字体_matplotlib默认字体设置
- 浏览器打印设置横向打印_震旦打印机如何设置认证打印
- 物联网-智能家居相关知识了解
- android透明度100%,Android设置字体透明度
- 7-1 十二进制字符串转换成十进制整数(PTA)
- 据说深圳电子烟工厂生产了全球产量的90%,为了了解一下这个行业,我做了以下分析
- HDU 5383 Yu-Gi-Oh!(费用流)
- 大数据时代下的小公益
- P1425 小鱼的游泳时间 题解
- QQ空间最新免费个人形象设置方法
- mac微信备份位置macos手机微信备份的文件迁移走
- 2016华为校招机试题目02
- vue打包时报错 Error: No PostCSS Config found in 的解决方法
- WinKtv中文版介绍
- 创建学生表,(sno,name,score,class),求每个班级中低于最高成绩的那些人
热门文章
- python实验报告内容实现购物车系统_Python实现的购物车功能示例
- python图片转视频加特效_使用Python opencv实现视频与图片的相互转换
- 安卓mysql类库_Android 链接mysql数据库
- linux ipv4参数查看,Linux内核参数之IPV4变量引用
- django表格_Django表格
- java从控制台读取字符串_从控制台读取Java字符串
- 什么是SQL Server DATEPART()方法?
- 异步处理函数async_Spring @Async异步处理注释
- 为什么被喷的总是产品经理?
- 区块链支付平台技术的应用