前提说明

去除无用样式就是去除样式中没有用到的 CSS 样式,这样有助于代码的优化,减少不必要样式代码的加载。

去除无用样式需要用到的模块:

  • purify-css
  • purifycss-webpack
  • glob,这个是一个辅助模块,用来获取 paths

准备工作

首先,还是把需要的依赖安装一下 package.json

  "scripts": {"webpack": "webpack"},"devDependencies": {"css-loader": "^1.0.0","glob": "^7.1.3","mini-css-extract-plugin": "^0.4.2","purify-css": "^1.2.5","purifycss-webpack": "^0.7.0","webpack": "^4.17.1","webpack-cli": "^3.1.0"}

其次,就是准备 Webpack 的配置文件 webpack.config.js,当然,这个配置文件是一部分:

const { join, relative } = require('path');
const MiniCssExtractPlugin = require("mini-css-extract-plugin");const config = {};config.mode = 'production';
config.entry = {index: join(__dirname, './src/index.js')
};
config.output = {path: join(__dirname, './dist'),filename: '[name].bundle.js',chunkFilename: '[name].chunk.js',publicPath: join(__dirname, './dist/')
};config.module = {rules: []
};config.module.rules.push({test: /\.css$/,use: [{loader: MiniCssExtractPlugin.loader},{loader: 'css-loader'}]
});config.plugins = [];config.plugins.push(new MiniCssExtractPlugin({filename: "[name].css"
}));module.exports = config;

最后,就是准备一下需要的代码文件:

index.js

import './css/common.css';function createDiv() {var element = document.createElement('div');element.className = 'my-div';element.innerHTML = '这是一个div';return element;
}document.body.appendChild(createDiv());

css/common.css

* {margin: 0;padding: 0;
}.my-div {width: 100%;height: 120px;background-color: aqua;
}span {font-size: 16px;
}

增加相关配置

其中 glob 模块是用来读取文件的。

const PurifyCSSPlugin = require("purifycss-webpack");
const glob = require('glob');config.plugins.push(new PurifyCSSPlugin({paths: glob.sync(join(__dirname, './src/**/*.js'))
}));

最后执行命令 yarn webpack,在 dist 目录下就会生成一个 index.css 文件。

* {margin: 0;padding: 0;
}.my-div {width: 100%;height: 120px;background-color: aqua;
}

会发现样式中没有了 span 的样式,因为这个样式没有被用到。

转载于:https://www.cnblogs.com/negivup/p/9558746.html

样式处理——去除无用样式相关推荐

  1. html去除radio的样式,【HTML+CSS】纯CSS设置checkbox大小和样式 附Radio的去除默认样式和自定义样式...

    话不多说,直接上效果图: 一.使用的基本div: 正常复选框 复选框checked 复选框disableed 二.自定义样式: input[type=checkbox] { margin-right: ...

  2. html标签的默认样式及去除

    虽然在一般情况下.我们大部分人都会直接引用一份已经写好的专门去除标签默认样式的reset.css文件(重置样式表)到项目中,进而去除掉元素的默认样式,一直觉得这样很省事毫不费力,但是最近在使用的时候发 ...

  3. 关于p标签去除默认样式问题

    关于p标签去除默认样式问题 一般来说,margin:0:padding:0:就可以了,但在有些浏览器中即使这样p有还有上下边距,因为: p { display: block; -webkit-marg ...

  4. CSS_css去掉input标签的默认样式,去除input点击样式

    去掉input标签的默认样式,去除input点击样式 outline: none; input {background: none;outline: none;border: none; }

  5. 去除input框点击后的一圈样式_去除input边框 input去除边框 去除input获取焦点时的蓝色外边框...

    去除input的边框 input{text-indent: 1em;} #search1{ } #search2{ border-width: 0; } #search3{ border:1px so ...

  6. WPS 代码域 修改默认代码域 使目录页码样式和页脚样式不同。

    需求:有需要不同样式的情况,所以针对这样去更改. 目录 切换代码域 替换页码格式 大小写域开关 数字格式开关 字符格式和以前用的格式 再次切换代码域 避免整个目录更新 切换代码域 在Windows中, ...

  7. 计算机考试表格样式,Excel2007用表样式快速给表格加格式

    Excel 2007提供了许多预定义的表样式(或快速样式),使用这些样式,可快速套用表格式.如果预定义的表样式不能满足您的需要,您可以创建并应用自定义的表样式.虽然您只能删除自定义的表样式,但是可以去 ...

  8. Bootstrap -- 插件: 按钮状态、折叠样式、轮播样式

    Bootstrap -- 插件: 按钮状态.折叠样式.轮播样式 1. 按钮(Button)插件:可以添加进一些交互,比如控制按钮状态. 如需向按钮添加加载状态,只需要简单地向 button 元素添加 ...

  9. word精华样式篇之三使用样式集让所有文档风格统一

    回顾:样式是样式是一组格式特征,例如字体名称.字号.颜色.段落对齐方式和间距. 一. 保存自己的专属样式 我们将自己工作文档设置好了各级标题格式后,希望以后打开word就直接使用这种样式,在关闭当前文 ...

最新文章

  1. 人算不如“云算”,且看新时代“借东风”
  2. iptables的地址取反操作
  3. 实现flex LinkBar 组件 动态切换ico图标
  4. 豪华奢侈的中国作家代表大会
  5. 《MySQL——分区表小记》
  6. ORACLE SQL总结六:管理方案对象
  7. MariaDB:删除数据库报错:error: 'Error dropping database (can't rmdir './shiro', errno: 39)'
  8. 迭代开发需要一种不同的观点[4]
  9. Bootstrap3 面板 .panel 容器
  10. 【hortonworks/registries】Parameter Schema name is null
  11. 求当前月的第一天和最后一天
  12. 用 IIS 进行ASP.NET 成员/角色管理(1):安全和配置概述
  13. Flutter 扩展NestedScrollView (二)列表滚动同步解决
  14. Docker学习文档
  15. webservice 传输加密
  16. 白话斯坦福机器学习课程-CS229 - 监督学习应用:梯度下降
  17. PS(简单操作) 单张图片制作九宫格/证件照排版
  18. Flutter开发之——Icon图标
  19. pbe近似_pbe近似_科学网—[转载]赝势及泛函介绍(1) - 冯宇超的博文
  20. Unity3D案例太空射击(Space Shooter)流程介绍与代码分析(上)

热门文章

  1. 在微服务中,Kubernetes软件组件有哪些?
  2. C++编程语言的应用方向有哪些?
  3. this 改变this的指向
  4. NIO-ByteBuffer
  5. 建造者模式 生成器模式 创建型 设计模式(五)
  6. 迪米特法则(Law Of Demeter)
  7. 深入学习JavaScript: apply 方法 详解
  8. 迷你MVVM框架 avalonjs 学习教程6、插入移除处理
  9. IBM服务器安装与HBA卡的驱动问题
  10. 【廖雪峰官方网站/Java教程】设计模式(一)