前言

此内容是个人学习笔记,以便日后翻阅。非教程,如有错误还请指出

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模块转换相关推荐

  1. java 模块设计模式_Java9模块化学习笔记二之模块设计模式

    模块设计的原则: 1.防止出现编译时循环依赖(主要是编译器不支持),但运行时是允许循环依赖的,比如GUI应用 2.明确模块的边界 几种模块设计: API模块,聚合模块(比如java.base) 可选依 ...

  2. css中怎么加入立体模型,CSS学习笔记二:css 画立体图形

    继上一次学了如何去运用css画平面图形,这一次学如何去画正方体,从2D向着3D学习,虽然有点满,但总是一个过程,一点一点积累,然后记录起来. Transfrom3D 在这一次中运用到了一下几种属性: ...

  3. pythonsze_python学习笔记二 数据类型(基础篇)

    Python基础 对于Python,一切事物都是对象,对象基于类创建 不同类型的类可以创造出字符串,数字,列表这样的对象,比如"koka".24.['北京', '上海', '深圳' ...

  4. ASP.NET MVC 2 学习笔记二: 表单的灵活提交

    ASP.NET MVC 2 学习笔记二:  表单的灵活提交 前面说到有做到公司内部的一个请假系统,用的是ASP.NET MVC 2+Entity Framework.虽然EF(Entity Frame ...

  5. python学习笔记4(模块

    python学习笔记4(模块) 一.模块 1.1 import语句 1.2 __name__属性 1.3 dir()函数 1.4 包 2.1 导入特定模块: 二.输入与输出 2.1 format使用 ...

  6. qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等)

    原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7851 ...

  7. Webpack4 学习笔记 - 01:webpack的安装和简单配置

    安装 webpack 新建一个Demo文件夹,执行初始化: npm init 在Demo文件夹里安装 webpack 和 webpack-cli : npm install webpack webpa ...

  8. PyTorch学习笔记(二)——回归

    PyTorch学习笔记(二)--回归 本文主要是用PyTorch来实现一个简单的回归任务. 编辑器:spyder 1.引入相应的包及生成伪数据 import torch import torch.nn ...

  9. 好程序员web前端分享Nodejs学习笔记之Stream模块

    好程序员web前端分享Nodejs学习笔记之Stream模块 一,开篇分析 流是一个抽象接口,被 Node 中的很多对象所实现.比如对一个 HTTP 服务器的请求是一个流,stdout 也是一个流.流 ...

最新文章

  1. 盘点 HashMap 源码中的那些优雅的设计!
  2. 利用Attribute特性简化多查询条件拼接sql语句的麻烦
  3. activity 点击后传递数据给fragment_【磨叽教程】Android进阶之Fragment的管理以及事务执行...
  4. How to add jdk8 in Eclipse Indigo
  5. css3中的新特性经典应用
  6. python默认字体_matplotlib默认字体设置
  7. 浏览器打印设置横向打印_震旦打印机如何设置认证打印
  8. 物联网-智能家居相关知识了解
  9. android透明度100%,Android设置字体透明度
  10. 7-1 十二进制字符串转换成十进制整数(PTA)
  11. 据说深圳电子烟工厂生产了全球产量的90%,为了了解一下这个行业,我做了以下分析
  12. HDU 5383 Yu-Gi-Oh!(费用流)
  13. 大数据时代下的小公益
  14. P1425 小鱼的游泳时间 题解
  15. QQ空间最新免费个人形象设置方法
  16. mac微信备份位置macos手机微信备份的文件迁移走
  17. 2016华为校招机试题目02
  18. vue打包时报错 Error: No PostCSS Config found in 的解决方法
  19. WinKtv中文版介绍
  20. 创建学生表,(sno,name,score,class),求每个班级中低于最高成绩的那些人

热门文章

  1. python实验报告内容实现购物车系统_Python实现的购物车功能示例
  2. python图片转视频加特效_使用Python opencv实现视频与图片的相互转换
  3. 安卓mysql类库_Android 链接mysql数据库
  4. linux ipv4参数查看,Linux内核参数之IPV4变量引用
  5. django表格_Django表格
  6. java从控制台读取字符串_从控制台读取Java字符串
  7. 什么是SQL Server DATEPART()方法?
  8. 异步处理函数async_Spring @Async异步处理注释
  9. 为什么被喷的总是产品经理?
  10. 区块链支付平台技术的应用