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

写在前面:在前面我们对css打包和分离进行了描述。此节我们开始学习如何对less文件进行打包和分离。

Less 是一门 CSS 预处理语言,它扩展了 CSS 语言,增加了变量、Mixin、函数等特性,使 CSS 更易维护和扩展。Less 可以运行在 Node 或浏览器端。 Less知识学习

1.Less文件的打包处理

1.1 在src/index.html文件中新增一个标签,样式采用less编写。

  <div id="less_part">less</div>

1.2 在css目录下新建一个less文件,此处为black.less

@base :#000;
#less_part{width:300px;height:300px;background-color:@base;
}

@base是我们设置的变量名称。

1.3 在src目录下的entry.js中引入less文件

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

1.4 安装Less的服务

要使用Less,我们要首先安装Less的服务,当然也是用npm来进行安装或者cnpm来安装。

npm install --save-dev less

还需要安装Less-loader用来打包使用。

1.5 Less-loader安装

npm  install --save-dev less-loader

1.6 配置loader

安装好后,需要在webpack.config.js里编写loader配置,当然要想正确解析成css,还是需要style-loader和css-loader的帮助,但是这两个loader前边已经讲过了,所以在这里就不重复了,style-loader和css-loader学习

webpack.config.js:

 //针对.less的处理配置
            {test: /\.less$/,use: [{loader: "style-loader" // creates style nodes from JS strings
                }, {loader: "css-loader" // translates CSS into CommonJS
                },{loader: "less-loader" // compiles Less to CSS
                }]},

注意上面loader的顺序,不要写反了。

1.7 打包+启动服务

使用webpack命令进行打包,此时我们可以发现,相关的样式被打包到了js当中。当然这是正确的,我们可以使用npm run server命令启动服务,最终也能正常渲染页面,我们的less样式被正确引用。

渲染效果:

在实际开发中我们可能会把想相关的css文件与js文件分离开来,以便管理,此处我们把Lees文件进行分离。

2.分离Less文件

在上一节当中我们学习了extract-text-webpack-plugin这个插件,也是需要通过这个插件来实现less文件的分离。 插件的使用

更改上述webpack.config.js文件中针对less文件的配置(使用分离的配置),修改后的代码为:

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

配置好后,使用webpack命令进行打包,此时less编写的样式被分离到了index.css文件里(配置的css打包路径)。

然后使用npm run server命令重新启动服务,渲染效果与上面一致。

部分源码:

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");
var website ={publicPath:"http://localhost:1818/"
}
module.exports={//入口文件的配置项
    entry:{entry:'./src/entry.js',//这里我们又引入了一个入口文件entry2:'./src/entry2.js',},//出口文件的配置项
    output:{//输出的路径,用了Node语法path:path.resolve(__dirname,'dist'),//输出的文件名称filename:'[name].js',publicPath: website.publicPath},//模块:例如解读CSS,图片如何转换,压缩
    module:{rules: [//针对.css的处理配置
            {test: /\.css$/,use: extractTextPlugin.extract({fallback: "style-loader",use: "css-loader"})},//针对.less的处理配置
            {test: /\.less$/,use: extractTextPlugin.extract({use: [{loader: "css-loader"}, {loader: "less-loader"}],// use style-loader in developmentfallback: "style-loader"//extract默认行为先使用css-loader编译css,如果一切顺利的话,结束之后把css导出到规定的文件去。但是如果编译过程中出现了错误,则继续使用vue-style-loader处理css
                })},{test:/\.(png|jpg|gif)/,use:[{loader:'url-loader',options:{limit:50,outputPath:'images/'//图片打包到images下
                    }}]},{test: /\.(htm|html)$/i,use:[ 'html-withimg-loader']}]},//插件,用于生产模版和各项功能
    plugins:[// new uglify(),new htmlPlugin({minify:{removeAttributeQuotes:true},hash:true,template:'./src/index.html'}),new extractTextPlugin("css/index.css")],//配置webpack开发服务功能
    devServer:{contentBase:path.resolve(__dirname,'dist'), //绝对路径host:'localhost',compress:true,port:1818}
}

View Code

src/css/black.less:

@base :#000;
#less_part{width:300px;height:300px;background-color:@base;
}

View Code

src/index.html:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>webpack</title>
</head>
<body>
<div><div id="less_part">less</div><img src="data:images/wfbin.png"/></div>
<div id="img"></div>
<div id="title"></div>
</body>
</html>

View Code

src/entry.js(入口文件):

import css from './css/index.css'
import less from './css/black.less'
document.getElementById('title').innerHTML='Hello Webpack';

View Code

posted on 2018-12-15 17:37 WFaceBoss 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/wfaceboss/p/10123909.html

(11/24) css进阶:Less文件的打包和分离相关推荐

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

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

  2. 打包成单独的HTML文件,【WEBPACK】分离css单独打包

    时间:2018-11-21 00:58:56 这篇文章非常非常早了,webpack4下已经无法用了, 最新可以看这里webpack实战场景系列 CHANGELOG 2018-02-08 14:46:0 ...

  3. gulp实现打包js/css/img/html文件,并对js/css/img文件加上版本号

    参考打包教程: http://www.cnblogs.com/tugenhua0707/p/4069769.html http://www.cnblogs.com/tugenhua0707/p/498 ...

  4. asp.net使用httphandler打包多CSS或JS文件以加快页面加载速度

    介绍 使用许多小得JS.CSS文件代替一个庞大的JS或CSS文件来让代码获得更好的可维护性,这是一个很好的实践.但这样做反过来却损失了网站的性能.虽然你应该将你的Javascript代码写在小文件中并 ...

  5. ASP.NET 打包多CSS或JS文件以加快页面加载速度的Handler

    ASP.NET 打包多CSS或JS文件以加快页面加载速度的Handler, 使用<link type="text/css" rel="Stylesheet" ...

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

    一.less文件打包和分离 1.要使用less,首先使用npm安装less服务:还需要安装Less-loader用来打包使用. npm install less --save-dev npm inst ...

  7. vue-cli打包后,找不到css、js文件问题的解决

    搜了一些解决方案,发现很多人只贴一点代码,就说解决了.我照葫芦画瓢,却依然无法实现,这就导致我"既不知其然也不知其所以然".于是我研究了config/index.js的配置,摸索出 ...

  8. webpack打包css和less文件

    1. 前言 webpack是不能直接处理 css .less.图片等资源的,需要使用对应的 loader ,有关loader的介绍请查看这篇博客 webpack中的loader 2. 打包css文件 ...

  9. 【webpack】使用webpack打包图片文件、打包时生成单独的css文件

    使用webpack打包图片文件 在scr目录下创建image文件夹,并且添加几张图片 在main.js使用import方式引入所有图片,并且append到app节点下 // 引入图片资源 import ...

最新文章

  1. php拍照从手机相册中选择,微信js-sdk预览图片接口及从拍照或手机相册中选图接口用法示例...
  2. tomcat主目录(ROOT.xml)和虚拟目录
  3. php怎么添加框架,PHPWind 给默认的风格添加大框架
  4. android gpio操作
  5. HTML+CSS+JavaScript复习笔记持更(二)——列表篇
  6. biginteger判断相等_java biginteger怎么比较大小
  7. android 内存分析 名词解释,Android内存分析和调优(下)
  8. 朋友圈终于对利诱打卡行为动手了!多款英语学习类软件中枪
  9. Java Tomcat
  10. 半径为r的均匀带电球体_一半径为R的均匀带电球体,其电荷的体密度为ρ.求(1)球外任一点的电势;(2)球表面上的电势;(3...
  11. PHP设计模式——原型模式
  12. 论文笔记_S2D.52_CMRNet++:在激光雷达地图中进行内参未知的相机的单目视觉定位
  13. 惩罚函数将有约束优化转化为无约束优化问题
  14. 都是肿瘤模型,凭什么说肿瘤类器官是“试药替身”?
  15. VulnHub-noob打靶记录
  16. [网络性能测试学习笔记] 测试AX3 Pro WiFi6无线路由器的系统转发能力(硬件转发交换能力L23吞吐量,L47应用层能力-最大可支持设备用户数,并发连接数等)
  17. java分词器加词库_Elasticsearch配置IK分词器的远程词库
  18. C++中使用代码修改字体颜色
  19. Prometheus 普罗米修斯
  20. 易语言WEB开发教程7 模块化开发-扩展支持库中的类

热门文章

  1. 015_CSS伪元素选择器
  2. JAVA数据库第四章上机3_Java第二至第四章上机练习题
  3. redis关键字删除_Redis批量删除key的小技巧
  4. linux的du和df命令,du和df命令都是Linux系统的重要工具
  5. 目前在线教育发展情况介绍
  6. java 读取webservice_java 调用webService的各种方法
  7. android:inputtype有哪些类型,android:inputType参数类型说明
  8. java与json,java与json
  9. java 循环关键字_Java循环结构_常量_关键字
  10. linux打开没有图形界面,linux无法打开图形界面