一、前言

我们在使用webpack构建工具的时候,通过style-loader,可以把解析出来的css通过js插入内部样式表的方式到页面中,插入的结果如下:

<style>
.wrapper {
width:100%;
height:50px;
}
.container {
width:1200px;
margin:0 auto;
}
...
</style>

如果不想使用这种方式,想用外部样式表的方式,那应该怎么做呢?

二、使用插件

这里有两个插件可以用,extract-text-webpack-pluginmini-css-extract-plugin,使用之后,就可以把css提取到单独的文件。通过配合html-webpack-plugin插件的使用,生成的html就会自动引入css文件啦,开心。

/* 这是提取css的文件,main.css */
.index-wrapper-qpZko {
width: 220px;
height: 50px;
}
...
<!-- 这是通过‘html-webpack-plugin’生成的html,会自动加入提取出来的公共css文件 -->
<link href="../main.css?9310f73f2ea21a1d0717" rel="stylesheet"></head>

通过extract-text-webpack-plugin插件

在这里,extract-text-webpack-plugin不是重点,所以只介绍一下该插件需要注意的几个点:

  • 如果是默认添加,不指定版本,则添加该插件只支持webpack 3
  • 如果是需要需要添加其他webpack版本的支持,需要特别指定版本
# for webpack 4
npm install --save-dev extract-text-webpack-plugin@next # for webpack 3
npm install --save-dev extract-text-webpack-plugin # for webpack 2
npm install --save-dev extract-text-webpack-plugin@2.1.2 # for webpack 1
npm install --save-dev extract-text-webpack-plugin@1.0.1

接下来,来看看mini-css-extract-plugin插件,这个是官方推荐的。

通过mini-css-extract-plugin插件

mini-css-extract-plugin插件也是用来提取css到单独的文件的,该插件有个前提条件,只能用于webpack 4及以上的版本,所以如果使用的webpack版本低于4,,那还是用回extract-text-webpack-plugin插件。

直接来吧,优点啥的,自己上GitHub看看哈。

添加依赖

npm install --save-dev mini-css-extract-plugin

webpack配置

const MiniCssExtractPlugin = require("mini-css-extract-plugin");
module.exports = {
plugins: [
new MiniCssExtractPlugin({
filename: "[name].css",
chunkFilename: "[id].css"
})
],
module: {
rules: [
{
test: /\.css$/,
use: [
MiniCssExtractPlugin.loader,
"css-loader"
]
}
]
}
}

这里还是要提醒一下,如果只有一个入口filename写不写硬编码都没关系,因为就只有一个入口,但如果有多个入口,那就不能使用硬编码了,不然后面入口生成的css文件会覆盖前面生成的。这是我之前在extract-text-webpack-plugin踩过的坑。

三、最后

是的,到此,mini-css-extract-plugin的基本使用就这么些了,要看更多的使用,还是看官方介绍哈。

好了,继续研究其他CSS相关的知识。rempostcsssassless、...

使用 “mini-css-extract-plugin” 提取css到单独的文件的更多相关文章

  1. DeprecationWarning: Tapable.plugin is deprecated. Use new API on `.hooks` instead extract-text-webpack-plugin 提取css报错

    深入浅出Webpack 1-5 使用pulugin extract-text-webpack-plugin 提取css报错 DeprecationWarning: Tapable.plugin is ...

  2. webpack4对第三方库css,项目全局css和vue内联css文件提取到单独的文件(二十二)

    在讲解提取css之前,我们先看下项目的架构如下结构: ### 目录结构如下: demo1 # 工程名 | |--- dist # 打包后生成的目录文件 | |--- node_modules # 所有 ...

  3. vue服务端渲染提取css

    vue服务端渲染,提取css单独打包的好处就不说了,在这里主要说的是抽取css的方法 要从 *.vue 文件中提取 CSS,可以使用 vue-loader 的 extractCSS 选项(需要 vue ...

  4. [Vue CLI 3] 配置解析之 css.extract

    大家还记得我们在老版本中,对于线上环境配置中会把所有的 css 多打成一个文件: 核心是使用了插件 extract-text-webpack-plugin,方式如下: 第一步都是加载插件 const ...

  5. webpack 提取css成单独文件

    webpack 提取css成单独文件 // 用来拼接绝对路径的方法 const {resolve} = require('path') const HtmlWebpackPlugin = requir ...

  6. webpack css打包为一个css

    1.安装 npm install extract-text-webpack-plugin --save-dev 2.项目目录: index文件夹下的index.css: body{ backgroun ...

  7. 【html、CSS、javascript-5】css应用场景补充

    一.CSS全局应用 父标签div下包含两个子标签div,当子标签dvi全部向左float,此时父标签设置的背景色是不显示的 <!DOCTYPE html> <html lang=&q ...

  8. HTML 网页开发、CSS 基础语法——十.CSS语法

    CSS代码书写位置 • CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明 1.内联式 ① 内联式简介 •内联式,也被习惯叫做行内式. •书写位置:在 HTML 标签之上的 style 属性 ...

  9. 前端开发css实战:使用css制作网页中的多级菜单

    前端开发css实战:使用css制作网页中的多级菜单 在日常工作中,大家都会遇到一些显示隐藏类菜单,比如页头导航.二维码显示隐藏.文本提示等等......而这些效果都是可以使用纯css实现的(而且非常简 ...

随机推荐

  1. AI移动自动化测试框架设计(解读)

    声明:原文出自"前端之巅"微信公众号"爱奇艺基于AI的移动端自动化测试框架的设计"一文,作者:何梁伟,爱奇艺Android架构师.文章提供了一种基于AI算法的自 ...

  2. 浅谈 C# SQL防注入

    1#region 防止sql注入式攻击(可用于UI层控制)  2  3///   4/// 判断字符串中是否有SQL攻击代码  5///   6/// 传入用户提交数据  7/// true-安全:f ...

  3. java-环境变量的配置

    java基础教程 链接:https://pan.baidu.com/s/1dGHrkghUJi2lew8dbWlIvg 提取码:87mi

  4. Maven运行报错

    在创建Maven项目时,出现报错:No goals have been specified for this build pom.xml文件加入  <build><defaultGo ...

  5. 微信小程序-表单笔记

    发布页——向云端数据库上传多行文字和4张图片 第6,8行注释掉和不注释掉都可以实现数据上传 var _this = this; wx.cloud.callFunction({ name: 'searc ...

  6. win10下安装ubuntu18.04

    在win10下安装Ubuntu18.04,双系统共存.Ubuntu 18.04 使用的是Gnome桌面. 查看系统的启动模式: Win+R打开运行,输入msinfo32,回车查看系统信息.在BIOS模 ...

  7. Jmeter日志级别

    转自:https://blog.csdn.net/gowhere_/article/details/78555068 Jmeter日志默认存放在%JMeter_HOME%\bin目录,文件名通常是JM ...

  8. Mint-ui 脱坑日记

    Field表单组件 这个组件真是大坑特坑 带默认背景边框 找了半天才找到 原生属性 :attr="{ maxlength:10 }" 是可以设置原生属性的 注意此处限制的输入长度 ...

  9. MarkdownPad

    MarkdownPad Markdown编辑器,只能在windows下使用 下载地址 :http://markdownpad.com/ 破解: 邮箱:Soar360@live.com 授权证书 GBP ...

  10. 科学地增加postgresql最大连接数

    PG配置文件路径 /etc/postgresql/9.3/main/postgresql.conf 首先如何查看最大连接数 This SQL will help you select max_conn ...