一、less文件打包和分离

  1、要使用less,首先使用npm安装less服务;还需要安装Less-loader用来打包使用。

npm install less --save-dev
npm install less-loader --save-dev 

  2、在module中配置

{test: /\.less$/,use: [{loader: "style-loader" },{loader: "css-loader" },{loader: "less-loader"}]
}

  3、在html中编写一个div,在css中新建一个less文件

<div id="leesBox"></div>

@base:yellowgreen;
#leesBox{width:300px;height:200px;background: @base;
}

  4、引入到index.js中

import less from './css/black.less';

  5、使用webpack进行打包,输入npm run server 查看效果

  6、less分离

  先配置

{test: /\.less$/,use:extractTextPlugin.extract({use:[{loader:'css-loader'},{loader:'less-loader'}],fallback:'style-loader'})
}

  再webpack打包,然后lessBox效果正常显示。之前跟在link后面的style样式没有了,我们在看index.css,发现less的样式进了index.css里面去了

二、sass文件打包和分离

  1、安装:因为sass-loader依赖于node-sass,所以需要先安装node-sass

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

  其他与less方式基本一致,将原来的less改成sass即可。

三、自动处理css前缀

  为了浏览器的兼容性,有时候我们必须加入-webkit、-ms、-o、-moz这些前缀。目的就是让我们写的页面在每个浏览器中都可以顺利运行。

  1、安装

npm i postcss-loader autoprefixer --save-dev

  2、在根目录新建一个postcss.config.js文件

module.exports = {plugins: [require('autoprefixer')]
}

  这就是对postCSS一个简单的配置,引入了autoprefixer插件。让postCSS拥有添加前缀的能力,它会根据 can i use 来增加相应的css3属性前缀。

  3、配置

{test:/\.css$/,use:extractTextPlugin.extract({fallback:"style-loader",use:[{loader:"css-loader",options:{importLoader:1}},"postcss-loader"]})
}

  4、输入webpack进行打包,最终效果。css文件里面加了浏览器前缀

四、消除未使用的CSS

  使用PurifyCSS可以大大减少CSS冗余

  1、安装

npm install purifycss-webpack purify-css --save-dev

  2、引入glob,因为我们需要同步检查html模板,所以我们需要引入node的glob对象使用。

  在webpack.config.js文件头部引入glob、引入purifycss-webpack

const glob = require('glob');
const PruifyCSSPlugin = require('purifycss-webpack');

  3、配置

new PruifyCSSPlugin({paths:glob.sync(path.join(__dirname,'src/*.html'))//src下所有的html
})

  4、配置好后,我们可以在css文件里,故意写一些不用的内容,使用webpack打包后,会自动去掉这些多余的内容

  我们加了无用的name样式,打包出来,发现没有,这就对了。

五、完整的webpack.config.js配置文件

  附上本次完整的配置文件

const path = require('path');
const uglify = require('uglifyjs-webpack-plugin');
const htmlPlugin = require('html-webpack-plugin');
const extractTextPlugin = require("extract-text-webpack-plugin");
const glob = require('glob');
const PruifyCSSPlugin = require('purifycss-webpack');module.exports={//打包调试devtool:'eval-source-map',//入口文件的配置项
    entry:{entry:'./src/index.js'},//出口文件的配置项
    output:{//输出的路径,用了Node语法path:path.resolve(__dirname,'dist'),//输出的文件名称filename:'bundle.js',publicPath:'./'},//模块:例如解读CSS,图片如何转换,压缩
    module:{rules:[{test:/\.css$/,use:extractTextPlugin.extract({fallback:"style-loader",use:"css-loader"})},{test:/\.(png|jpg|gif)/,use:[{loader:'url-loader',options:{limit:500000}}]},{test:/\.(htm|html)$/i,use:['html-withimg-loader']},{test:/\.(jsx|js)$/,use:{loader:'babel-loader',options:{presets:["es2015","react"]}},exclude:/node_modules/},{test: /\.less$/,use:extractTextPlugin.extract({use:[{loader:'css-loader'},{loader:'less-loader'}],fallback:'style-loader'})},{test:/\.css$/,use:extractTextPlugin.extract({fallback:"style-loader",use:[{loader:"css-loader",options:{importLoader:1}},"postcss-loader"]})}]},//插件,用于生产模版和各项功能
    plugins:[new uglify(),new htmlPlugin({minify:{removeAttributeQuotes:true},hash:true,template:'./src/index.html'}),new extractTextPlugin('/css/index.css'),new PruifyCSSPlugin({paths:glob.sync(path.join(__dirname,'src/*.html'))//src下所有的html
        })],//  插件,多个插件,所以是数组//配置webpack开发服务功能
    devServer:{contentBase:path.resolve(__dirname,'dist'),//本地服务器所加载的页面所在的目录host:'192.168.118.221',compress:true,port:8081}//  配置webpack服务
}

转载于:https://www.cnblogs.com/goloving/p/8654176.html

webpack配置:less/sass文件打包和分离、自动处理css前缀、消除未使用的css及完整的webpack.config.js文件...相关推荐

  1. webpack 4.0 配置文件 webpack.config.js文件的放置位置

    一般webpack.config.js是默认放在根目录的,不在根目录的时候需要在package.json中制定位置,我的配置文件目录是config/webpack.config.js,在package ...

  2. webpack教程(二)——webpack.config.js文件

    首先我们需要安装一个webpack插件html-webpack-plugin,该插件的作用是帮助我们生成创建html入口文件.执行如下命令 npm install html-webpack-plugi ...

  3. github pages gitee pages 配置教程、更新教程(亲测有效),gitee pages 访问界面为空白,样式和js文件404问题解决(亲测有效)

    github pages gitee pages 配置教程.更新教程(亲测有效),gitee pages 访问界面为空白,样式和js文件404问题解决(亲测有效) github部署vue打包项目通过 ...

  4. 马克一下:vue工程创建后,目录下怎么没有vue.config.js文件

    平常没有留意,今天偶然发现,vue cli 安装后,目录里没有vue.config.js, 这个文件是可选的配置文件,需要在根目录中手动创建, @vue/cli-service 会自动加载.

  5. wepy小程序踩坑-未发现相关 sass/less 编译器配置,请检查wepy.config.js文件

    一.未发现相关less 编译器配置 解决:npm install less 后再 npm install wepy-compiler-less --save-dev 二.未发现相关sass 编译器配置 ...

  6. webpack配置:打包第三方类库、第三方类库抽离、watch自动打包、集中拷贝静态资源...

    一.打包第三方类库 下面说2种方法: 第一种: 1.引入jQuery,首先安装: npm install --save-dev jquery 2.安装好后,在index.js中引入,用jquery语法 ...

  7. webpack打包生成的map文件_从这十几个方面优化你的 Webpack 配置

    目录 开发环境性能优化 生产环境性能优化 开发环境性能优化 优化打包构建速度 HMR 优化代码调试 source-map HMR ❝ 概念:「HMR:」 hot module replacement ...

  8. webpack如何将css文件分离的,webpack--css:Less文件的打包和分离(八)

    目录结构 before after webpack.config.js 文件内容 src/css/index.less @blue :#00aaee; #jie{ width: 100px; heig ...

  9. (11/24) css进阶:Less文件的打包和分离

    (11/24) css进阶:Less文件的打包和分离 写在前面:在前面我们对css打包和分离进行了描述.此节我们开始学习如何对less文件进行打包和分离. Less 是一门 CSS 预处理语言,它扩展 ...

最新文章

  1. 几十条业务线日志系统如何收集处理?
  2. dataTable调用接口渲染数据,没有数据,报错
  3. 植入“电商基因” 传统产业搭上网络快车[图]
  4. 【PM模块】预防性维护(下)
  5. python处理xml文件_Python解析并修改XML文件
  6. 结构专业规范大全_2019年一、二级注册结构师专业考试所用的规范、标准、规程...
  7. java内部类的作用_java 内部类的好处和缺点(上)
  8. Ubuntu22.4开发环境配置
  9. 单机游戏mysql启动不了_魔域单机版MySQL数据库启动失败解决办法
  10. 电脑鼠标右键菜单太多了怎么办?Windows右键菜单设置删除方法介绍
  11. 01背包与完全背包详解
  12. usb无线网卡断线后找不到网络
  13. postgresql集群方案hot standby初级测试(四)——xlog详细解释header
  14. contiki 操作教程
  15. GetDC是什么意思 GetWindowDC(hWnd)
  16. windows搭建frp服务器_Windows平台下FRP内网穿透的搭建
  17. ScrollView和HorizontalScrollView滚动条的简单使用
  18. 百度优化客服电话搜索
  19. android 获取定位省份,android 获取当前定位信息
  20. 船舶导航软件测试,船舶导航系统

热门文章

  1. (转载)android:visibility和android:scaleType 属性
  2. LINUX 下通过lsof恢复被误删除的文件
  3. (转)C++中extern “C”含义深层探索
  4. (转)Membership、MembershipUser和Roles类 详解
  5. c++循环读取多行文本文件
  6. Mac Big Sur如何更改锁屏时间
  7. Ubuntu Linux服务器安装Hadoop并配置伪分布式
  8. 数据:昨日BTC和ETH期货持仓均减少约三成,波动率创3月以来新高
  9. LBRY:美SEC对我们的指控将威胁到整个加密货币行业
  10. sqoop-import 并行抽数及数据倾斜解决