webpack打包处理css的时候需要两个loader:

style-loader 和css-loader

安装:

 npm install style-loader css-loader --save-dev

style-loader:负责将打包生成的代码嵌入到html页面中.

css-loader:是允许将css文件引入到.js文件中;

简单的打包css的webpack.config.js文件:

 var path = require('path')
module.exports = {
entry:{
app:'./src/app.js'
},
output: {
path:path.resolve(__dirname,'dist'),
publicPath: "./dist/",
filename: "[name].bundle.js"
},
module:{
rules:[
{
test:/\.css$/,
use:[
{
loader:'style-loader',//在html页面中插入<style>标签;
// options:{
// insertInto:'#app',//将打包成的style标签插入app
// singlleton:true,//只生成一个style标签
// transfrom:'./css.transform.js'//css的变形,它会在打包生成的标签插入html页面的时候生效,因此还可以获取浏览器的相关信息
// }
// loader:'style-loader/url'//会在头部插入<link>标签//如果打包多个文件会生成 多个link,影响性能,推荐使用上一种;
//loader:"style-loader/useable"//控制样式插入或者不插入页面中; },
{
loader:'css-loader',
// loader:'file-loader',
options:{
minimize:true,
modules:true//开启了modules,在js中引入css文件以后,就可以导出css文件,点.出css文件中的内容;
}
}
]
}
]
}
}

style-loader:有一个options配置,包括:

  1.inserAt:形成的标签插入的位置;

  2.insertInto:插入到dom

  3.singleton:true/false是否只使用一个style标签

  4.transform:转化,是在浏览器环境下生效,插入页面之前;可以进行和浏览器相关的页面样式操作

如:css.transform.js文件:

 module.exports = function (css) {
console.log(css)
console.log(window.innerWidth)
if(window.innerWidth >= 768){
return css.replace('red','green')
}else{
return css.replace('red','orange')
}
}

style-loader的两个同类:

  1.style-loader/url:是将打包的代码以Link的形式插入到页面中;

  2.style-loader/useable:是否允许插入引入的文件,在.js中使用

css的options配置项:

  1.alias(解析的别名)

  2.importLoader(@import)

  3.Minimize(是否压缩)

  4.modules(启用css-modules)

css-Modules的参数:

  1.:local

  2.global

  3.compose

  4.compose...from path

compose使用代码:

 .box  {
composes: bigBox from './common.css';//为了优先级,默认将引入的写入到括号中的第一行
width: 200px;
height: 200px;
background: skyblue;
border-radius:5%;
}

less与sass配置:

安装:

 npm install less-loader less --save-dev
npm install sass-loader node-sass --save-dev

配置代码:

  rules:[
{
test:/\.less$/,
use:[
{
loader:'style-loader',//在html页面中插入<style>标签;
// options:{
// insertInto:'#app',//将打包成的style标签插入app
// singlleton:true,//只生成一个style标签
// transfrom:'./css.transform.js'//css的变形,它会在打包生成的标签插入html页面的时候生效,因此还可以获取浏览器的相关信息
// }
// loader:'style-loader/url'//会在头部插入<link>标签//如果打包多个文件会生成 多个link,影响性能,推荐使用上一种;
//loader:"style-loader/useable"//控制样式插入或者不插入页面中; },
{
loader:'css-loader',
// loader:'file-loader',
options:{
minimize:true,
modules:true//开启了modules,在js中引入css文件以后,就可以导出css文件,点.出css文件中的内容;
}
},
{
loader:'less-loader'
}
]
}
]

二.提取css ----- 使用插件

  安装:

 npm install --save-dev extract-text-webpack-plugin

使用:

 const ExtractTextPlugin = require("extract-text-webpack-plugin");

 module.exports = {
module: {
rules: [
{
test: /\.css$/,
use: ExtractTextPlugin.extract({
fallback: "style-loader",
use: "css-loader"
})
}
]
},
plugins: [
new ExtractTextPlugin("styles.css"),
]
}

webpack的css处理的更多相关文章

  1. CSS预编译与PostCSS以及Webpack构建CSS综合方案

    CSS全称Cascading Style Sheets(层叠样式表),用来为HTML添加样式,本质上是一种标记类语言.CSS前期发展非常迅速,1994年哈肯·维姆·莱首次提出CSS,1996年12月W ...

  2. webpack导入css及各项loader

    1. webpack导入css 1) 下载相关的加载器 npm install style-loader css-loader -D 2)将index.css引入到mian.js中 import '. ...

  3. react&webpack使用css、less && 安装原则 --- 从根本上解决问题。

    在webpack-react项目中,css的使用对于不同人有不同的选择,早起是推荐在jsx文件中使用 css inline js的,但是这种方法要写很多对象来表示一个一个的标签,并且对于这些对象,我们 ...

  4. webpack教程——css的加载

    首先要安装css的loader npm install css-loader style-loader --save-dev 然后在webpack.config.js中配置如下代码 意思是先用css- ...

  5. Webpack打包css后z-index被重新计算的解决方法

    发现问题 最近在使用 Webpack 打包 css 文件时,发现了一个问题,发现打包后的 z-index 值跟源文件 z-index 不一致. 如下图,左侧是源文件,右侧是打包后的文件: 即使加上 ! ...

  6. webpack抽取CSS文件与CSSTreeShaking

    webpack抽取CSS文件 CSSTreeShaking 一.webpack抽取CSS文件 抽取CSS文件的插件:mini-css-extract-plugin npm install --save ...

  7. webpack 提取css成单独文件

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

  8. boi剖析 - 基于webpack的css sprites实现方案

    本文是58到家前端工程化集成解决方案boi的博文系列之一.boi是基于webpack打造的一站式前端工程化解决方案,现已开源Github. 作为前端构建工具不可或缺的一个环节,自动生成css spri ...

  9. [AngularJS + Webpack] Requiring CSS & Preprocessors

    Making your CSS modular is a difficult thing to do, but using Webpack makes this so much easier. By ...

  10. 使用webpack打包css和js

    1.安装webpack. npm install webpack -g 2.创建一个文件夹app. 3.新建文件test.js. require("!style-loader!css-loa ...

随机推荐

  1. std::bind 详解及参数解析

    // Bind_std_function.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> ...

  2. POJ 2230 Watchcow (欧拉回路)

    Watchcow Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 5258   Accepted: 2206   Specia ...

  3. 指尖下的js —— 多触式web前端开发之三:处理复杂手势(转)

    这篇文章着重介绍多触式设备上特有的gesture event(android和iOS对这个事件的封装大同小异).这个事件是对touch event的更高层的封装,和touch一样,它同样包括gestu ...

  4. 使用Delphi实现票据精确打印

    一.概述在银行,税务,邮政等行业的实际工作中,经常涉及到在印刷好具有固定格式的汇款单,储蓄凭证,税票等单据上的确定位置打印输出相关的信息.在此类需求中,精确地定位单据并打印相关信息,是解决问题的关键. ...

  5. 【IL】IL入门

    1.IL基本介绍 1.1 CLR介绍 在介绍IL之前,先说一说CLR.CLR的全称Commen Language Runtime 公共语言运行时.因为CLR的存在,使得多语言开发成为可能.下面给出一张 ...

  6. Linux下通过关键字模糊查找搜索文件

    [背景] 想要在Linux下面,找之前不知道放到哪里的一个tomcat的文件. [折腾过程] 1.最后是参考: linux查找文件命令find – 发芽的石头 – 博客频道 – CSDN.NET 去搜 ...

  7. hibernate 注解 boolean问题解决方案

    1.JPA本身是不支持boolean.可以用Hibernater自带的标签.修改如下. @Column(name = "manager_log") @org.hibernate.a ...

  8. Python -- map, Lambda, filter and reduce

    map(func, seq)对seq中的每一个元素,调用func并返回结果.典型的应用是使用lambda函数. >>> def square(x): return x**2 > ...

  9. 使用Python3自带工具2to3.py 转换 Python2.x 代码 到Python3

    几乎所有的Python 2程序都需要一些修改才能正常地运行在Python 3的环境下.为了简化这个转换过程,Python 3自带了一个叫做2to3的实用脚本(Utility Script),这个脚本会 ...

  10. 喜马拉雅FM接入

    最近有考虑接入,但是一方面由于沟通不畅等,另一方面没有浏览开发者协议,品牌规范等,多走了很多弯路,所以记下接入的注意事项和关键点 一. 接入前准备工作 喜马拉雅FM开放平台地址:http://open ...