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 ...
随机推荐
- [转]TensorFlow---岂止深度学习
原文链接 TensorFlow不仅可以用于深度学习自动求导,它也可用于构建传统机器学习和经典算法. TensorFlow提供了"一揽子"常用数值计算和机器学习算法的构建模块.在本文 ...
- 【RS】Stochastic PCA with ℓ2 and ℓ1 Regularization - ℓ2 和 ℓ1正则的随机 PCA
[论文标题] Stochastic PCA with ℓ2 and ℓ1 Regularization (ICML 2018) [论文作者]—Poorya Mianjy (Johns Hopki ...
- iOS 性能调优
1.内存空间的划分: 我们知道,一个进程占用的内存空间,包含5种不同的数据区:(1)BSS段:通常是存放未初始化的全局变量:(2)数据段:通常是存放已初始化的全局变量.(3)代码段:通常是存放程序执行 ...
- 运维人员20道必会iptables面试题
1.详述iptales工作流程以及规则过滤顺序? iptables过滤的规则顺序是由上至下,若出现相同的匹配规则则遵循由上至下的顺序 2.iptables有几个表以及每个表有几个链? Iptables ...
- 在Linux上yum安装运行Redis,只能安装2.4.10(主从)
Installing Redis on CentOS 6.4 First, install the epel repo sudo rpm -Uvh http://download.fedoraproj ...
- ASP.NET Core网站初探
原文地址:https://blog.csdn.net/iml6yu/article/details/74530679 目录结构如下图 目录: Properties:属性,记录了项目属性的配置文件. ...
- easyui datagrid checkbox选中事件
$('#grid_Order').datagrid({ onCheck: function(index, data) { //alert(data[0]); / ...
- Android Studio多Module开发需要注意的问题
多module开发,其中的一个为入口module,其他module为独立的“应用”(library) 1.在原有的项目导入另外个项目的module为主项目的次module,即在A项目中添加一个启动B项 ...
- Android App优化之ANR详解
引言 背景:Android App优化, 要怎么做? Android App优化之性能分析工具 Android App优化之提升你的App启动速度之理论基础 Android App优化之提升你的App ...
- 利用eclipse+jdk1.8搭建Java开发环境(超具体的)
利用eclipse+jdk1.8搭建Java开发环境 转载请声明出处:http://blog.csdn.net/u013067166/article/details/50267003 引言:eclip ...