webpack的css处理
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处理的更多相关文章
- CSS预编译与PostCSS以及Webpack构建CSS综合方案
CSS全称Cascading Style Sheets(层叠样式表),用来为HTML添加样式,本质上是一种标记类语言.CSS前期发展非常迅速,1994年哈肯·维姆·莱首次提出CSS,1996年12月W ...
- webpack导入css及各项loader
1. webpack导入css 1) 下载相关的加载器 npm install style-loader css-loader -D 2)将index.css引入到mian.js中 import '. ...
- react&webpack使用css、less && 安装原则 --- 从根本上解决问题。
在webpack-react项目中,css的使用对于不同人有不同的选择,早起是推荐在jsx文件中使用 css inline js的,但是这种方法要写很多对象来表示一个一个的标签,并且对于这些对象,我们 ...
- webpack教程——css的加载
首先要安装css的loader npm install css-loader style-loader --save-dev 然后在webpack.config.js中配置如下代码 意思是先用css- ...
- Webpack打包css后z-index被重新计算的解决方法
发现问题 最近在使用 Webpack 打包 css 文件时,发现了一个问题,发现打包后的 z-index 值跟源文件 z-index 不一致. 如下图,左侧是源文件,右侧是打包后的文件: 即使加上 ! ...
- webpack抽取CSS文件与CSSTreeShaking
webpack抽取CSS文件 CSSTreeShaking 一.webpack抽取CSS文件 抽取CSS文件的插件:mini-css-extract-plugin npm install --save ...
- webpack 提取css成单独文件
webpack 提取css成单独文件 // 用来拼接绝对路径的方法 const {resolve} = require('path') const HtmlWebpackPlugin = requir ...
- boi剖析 - 基于webpack的css sprites实现方案
本文是58到家前端工程化集成解决方案boi的博文系列之一.boi是基于webpack打造的一站式前端工程化解决方案,现已开源Github. 作为前端构建工具不可或缺的一个环节,自动生成css spri ...
- [AngularJS + Webpack] Requiring CSS & Preprocessors
Making your CSS modular is a difficult thing to do, but using Webpack makes this so much easier. By ...
- 使用webpack打包css和js
1.安装webpack. npm install webpack -g 2.创建一个文件夹app. 3.新建文件test.js. require("!style-loader!css-loa ...
随机推荐
- 基于 CoreText 实现高性能 UITableView
引起UITableView卡顿比较常见的原因有cell的层级过多.cell中有触发离屏渲染的代码(譬如:cornerRadius.maskToBounds 同时使用).像素是否对齐.是否使用UITab ...
- excel中的数据粘贴不全到plsql中,excel 粘贴后空白,Excel复制粘贴内容不全
http://zhidao.baidu.com/link?url=pHZQvfWJzI-lQjl4uP86q4GLcpYHu4o-fdjiYegJS0Cy5HEq5oz0YrUye3iHjmv5CJ3 ...
- c运行库、c标准库、windows API的区别和联系
C运行时库函数C运行时库函数是指C语言本身支持的一些基本函数,通常是汇编直接实现的. API函数API函数是操作系统为方便用户设计应用程序而提供的实现特定功能的函数,API函数也是C语言的函数实现的 ...
- Ubuntu菜鸟入门(十六)—— 安装视频播放器vlc
sudo add-apt-repository ppa:videolan/master-daily sudo apt-get update sudo apt-get install vlc Ubunt ...
- 从前端的UI开始
MVC分离的比较好,开发顺序没有特别要求,先开发哪一部分都可以,这次我们主要讲解前端UI的部分. ASP.NET MVC抛弃了WebForm的一些特有的习惯,例如服务器端控件,ViewState这些东 ...
- Config程序配置文件操作实践进阶之ConfigurationSectionGroup
今天又进一步对System.Configuration下的ConfigurationSectionGroup类及相关的类与方法进行了研究.发现要构建多层次嵌套的XML标签 则必须用到Configura ...
- android图片等比例缩放 填充屏幕
在ImageView的t同事设置两个属性 android:adjustViewBounds="true"android:scaleType="fitXY"
- MongoDB 学习笔记(8)---$type 操作符
$type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果. MongoDB 中可以使用的类型如下表所示: 类型 数字 备注 Double 1 String 2 Object 3 ...
- 不常用但很有用的git show 和 git blame
团队使用git 合作时,可能遇见想要查看一段比较难以阅读代码, 此时可能需要联系最新的修改者是哪位,这时候最有用的最快捷的方法就是git blame 啦, 这个指令的output是一个文件的各个区域段 ...
- selenium 实现网页截图
使用webdriver提供的 save_screenshot 方法: from selenium import webdriver driver = webdriver.Chrome() driver ...