webpack的css处理

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

style-loader 和css-loader

安装:

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

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

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

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

 1 var path = require(‘path‘)
 2 module.exports = {
 3     entry:{
 4         app:‘./src/app.js‘
 5     },
 6     output: {
 7         path:path.resolve(__dirname,‘dist‘),
 8         publicPath: "./dist/",
 9         filename: "[name].bundle.js"
10     },
11     module:{
12         rules:[
13             {
14                 test:/\.css$/,
15                 use:[
16                     {
17                         loader:‘style-loader‘,//在html页面中插入<style>标签;
18                         // options:{
19                         //     insertInto:‘#app‘,//将打包成的style标签插入app
20                         //     singlleton:true,//只生成一个style标签
21                         //     transfrom:‘./css.transform.js‘//css的变形,它会在打包生成的标签插入html页面的时候生效,因此还可以获取浏览器的相关信息
22                         // }
23                        // loader:‘style-loader/url‘//会在头部插入<link>标签//如果打包多个文件会生成 多个link,影响性能,推荐使用上一种;
24                         //loader:"style-loader/useable"//控制样式插入或者不插入页面中;
25
26                     },
27                     {
28                         loader:‘css-loader‘,
29                         // loader:‘file-loader‘,
30                         options:{
31                             minimize:true,
32                             modules:true//开启了modules,在js中引入css文件以后,就可以导出css文件,点.出css文件中的内容;
33                         }
34                     }
35                 ]
36             }
37         ]
38     }
39 }

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

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

  2.insertInto:插入到dom

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

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

如:css.transform.js文件:

1 module.exports = function (css) {
2     console.log(css)
3     console.log(window.innerWidth)
4     if(window.innerWidth >= 768){
5         return css.replace(‘red‘,‘green‘)
6     }else{
7         return css.replace(‘red‘,‘orange‘)
8     }
9 }

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使用代码:

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

less与sass配置:

安装:

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

配置代码:

 1  rules:[
 2             {
 3                 test:/\.less$/,
 4                 use:[
 5                     {
 6                         loader:‘style-loader‘,//在html页面中插入<style>标签;
 7                         // options:{
 8                         //     insertInto:‘#app‘,//将打包成的style标签插入app
 9                         //     singlleton:true,//只生成一个style标签
10                         //     transfrom:‘./css.transform.js‘//css的变形,它会在打包生成的标签插入html页面的时候生效,因此还可以获取浏览器的相关信息
11                         // }
12                        // loader:‘style-loader/url‘//会在头部插入<link>标签//如果打包多个文件会生成 多个link,影响性能,推荐使用上一种;
13                         //loader:"style-loader/useable"//控制样式插入或者不插入页面中;
14
15                     },
16                     {
17                         loader:‘css-loader‘,
18                         // loader:‘file-loader‘,
19                         options:{
20                             minimize:true,
21                             modules:true//开启了modules,在js中引入css文件以后,就可以导出css文件,点.出css文件中的内容;
22                         }
23                     },
24                     {
25                         loader:‘less-loader‘
26                     }
27                 ]
28             }
29         ]

原文地址:https://www.cnblogs.com/yangguoe/p/9887310.html

时间: 2024-08-06 14:12:49

webpack的css处理的相关文章

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

在webpack-react项目中,css的使用对于不同人有不同的选择,早起是推荐在jsx文件中使用 css inline js的,但是这种方法要写很多对象来表示一个一个的标签,并且对于这些对象,我们在写样式时,还必须要使用驼峰式的写法,所以,这无疑使我们不能接受的,最好的做法就是讲css文件写在一个单独的文件夹中外联进来. webpack同时也是可以将css文件当做一个一个的模块的,所以,我们就需要对css模块的处理进行配置. npm install css-loader style-load

webpack&#20998;&#31163;css&#21333;&#29420;&#25171;&#21253;

webpack分离css单独打包 字数285 阅读0 评论0 喜欢0 瞎扯 webpack 把所有的资源都当成了一个模块, CSS,Image, JS 字体文件 都是资源, 都可以打包到一个 bundle.js 文件中.但是有时候需要把样式 单独的打包成一个文件, 然后放到 CND上, 然后缓存到浏览器客户端中 这个操作很简单的,只需要一个插件就好了,就是extract-text-webpack-plugin 1. 安装extract-text-webpack-plugin npm instal

webpack教程——css的加载

首先要安装css的loader npm install css-loader style-loader --save-dev 然后在webpack.config.js中配置如下代码 意思是先用css-loader加载css文件,再用style-loader添加在页面中 在app目录下创建component.css文件 body{ background-color: red; } 在app/index.js中引入css文件 运行npm run start命令. 可以看到我们浏览器整个背景都变成了红

webpack导入css及各项loader

1. webpack导入css 1) 下载相关的加载器 npm install style-loader css-loader -D 2)将index.css引入到mian.js中 import './css/index.css' 3) 配置webpack.config.js 使用module属性 const path = require('path') module.exports = { mode: 'development', entry:path.join(__dirname,'./sr

webpack打包css

1.第一种方式 1.安装css-loader和style-loader $ cnpm install css-loader style-loader --save-dev 2.引用的时候使用css-loader,让webpack可以打包css文件 require('css-loader!./style.css'); 3.打包 4.引入style-loader,将样式通过style标签写到head标签里 require('style-loader!css-loader!./style.css');

[AngularJS + Webpack] Requiring CSS &amp; Preprocessors

Making your CSS modular is a difficult thing to do, but using Webpack makes this so much easier. By adding a single line to your Webpack config, you can require you CSS, Stylus, Less, etc. files right from your directives and keep everything together

webpack 处理CSS

1.安装插件 npm i style-loader css-loader --save-dev npm i postcss-loader --save-dev npm i autoprefixer --save-dev npm install postcss-import --save-dev style-loader插件为:通过注入<style>标签将CSS添加到DOM中 autoprefixer 自动添加前缀 postcss-import:支持使用@import引入css 2.项目目录结构

webpack 中 css 和 html 刷新问题的解决思路

webpack-dev-server有热更新功能,当webpack入口的js文件被修改,则会自动更新数据并刷新浏览器. css 问题 如果使用style-loader将样式添加到js文件中,在编写样式的时候可以享受热更新的效果,如果使用extract-text-webpack-plugin 将样式提取,此组件并不支持热更新.只会重新打包但是并不会刷新页面. 官方建议在开发环境中关闭ExtractText组件. html 问题 html-webpack-plugin 创建html 并不经过entr

webpack的css压缩不兼容IOS8问题探索

webpack使用postcss的autoprefixer插件,并在压缩css时使用了cssnano,处理不当的情况下会导致压缩css后,部分兼容前缀(比如-webkit-)被删除的问题. postcss的autoprefixer配置如下: autoprefixer({ browsers: ['> 1%', 'iOS >= 7',"ie >= 7", 'Android >= 2.4'] }) css压缩的配置如下: //压缩css代码 new OptimizeC