webpack打包css和less文件
1. 前言
webpack是不能直接处理 css 、less、图片等资源的,需要使用对应的 loader
,有关loader的介绍请查看这篇博客 webpack中的loader
2. 打包css文件
目录结构(本案例的演示代码在页面底部有下载链接)
(1)项目开发过程中,我们必然需要添加很多的样式,而样式我们往往写到一个单独的文件中。在src目录中,创建一个css文件夹,其中创建一个normal.css文件。
body {/*normal.css中的代码非常简单,就是将body设置为blue*/background-color: blue;
}
但是,这个时候normal.css中的样式会生效吗?
- 不会。因为我们就没有引用它。
- webpack也不可能找到它,因为我们只有一个入口,而webpack会从入口开始查找其他依赖的文件。
打包的时候,只有打包入口文件依赖的文件才会进行打包。如果依赖的文件又依赖了其他的文件,webpack会自动处理。如果创建了一个新的文件,比如css文件,但是并没有任何其它文件依赖新创建的文件,那么这个文件不会被打包进去。
(2)接下来我们在 mian.js 入口文件导入 normal.css 文件
// 依赖css文件,css文件也可以被当做一个模块来处理。
// 由于我们只要依赖css文件就可以了,并不需要用一个变量来接收
require('./css/normal.css')
重新进行打包,发现报错了,提示我们需要安装一个合适的loader:
(3)查阅 webpack 官网 https://www.webpackjs.com/loaders/css-loader/,发现我们需要安装 css-loader
和 style-loader
,使用命令 npm install --save-dev xxx
(xxx替换为对应loader的名字)
然后需要在 webpack.config.js
文件中进行一些配置
let path = require('path');module.exports = {entry: './src/main.js', //打包入口output: { //出口path: path.join(__dirname,'dist'),filename: 'bundle.js'},module:{rules:[{test:/\.css$/,// css-loader只负责将css文件进行加载// style-loader负责将样式添加到DOM中,要放在css-loader的前面// webpack在使用多个loader时,是按照从右向左(或者说从下到上)的顺序使用use:['style-loader','css-loader']}]}
}
接下来重新打包,发现打包成功,dist 文件夹下就多了一个 bundle.js 文件,我们只需要在 html 文件中引入这个 bundle.js 文件即可。
3. 打包less文件
(1)先创建一个special.less文件,依然放在css文件夹中
@fontSize:50px;
@fontColor:orange;body {font-size:@fontSize;color: @fontColor;
}
(2)在入口文件main.js文件中引入
require('./css/special.less')
(3)查阅官网 https://www.webpackjs.com/loaders/less-loader/ 打包less文件需要安装对应的loader,less-loader
npm install --save-dev less-loader less
(4)修改 webpack.config.js 配置文件,加入对应的 less-loader 的配置
module:{rules:[{test:/\.css$/,use:['style-loader','css-loader']},{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}]}]}
4. 资料
- 本博客的演示代码下载链接 https://webchang.lanzous.com/i6bFtkflaef 密码:2h4i
- webpack中文网 - loader
- 博客 webpack中的loader的介绍
- 提示:在使用webpack的loader的过程中可能会遇到版本的问题,要注意一下,可以看这篇博客 https://blog.csdn.net/weixin_43974265/article/details/112667927
前端学习交流QQ群,群内学习讨论的氛围很好,大佬云集,期待您的加入:862748629 点击加入
webpack打包css和less文件相关推荐
- 使用webpack打包ThinkPHP的资源文件
使用webpack打包ThinkPHP的资源文件 利用自己的空余时间一直在维护http://www.wx2share.com这个小网站,全是一个人在弄,由于只租得起虚拟空间,所以后台采用了简单方便的T ...
- webpack打包css image,webpack 打包CSS 引入图片
加载css 安装style-loader, css-loader npm install style-loader css-loader --save-dev 配置webpack.config.js文 ...
- webpack打包css
webpack打包 1.打包css 2.打包逻辑 1-1.webpack打包css逻辑 3.打包css 4.打包成独立的css文件 5.添加样式前缀 6.格式校验 7.压缩css 8.我们为什么要用这 ...
- webpack打包原理和manifest文件分析
打包工具要解决的问题: 文件依赖管理 梳理文件之间的依赖关系 资源加载管理 处理文件的加载顺序(先后时机)和文件的加载数量(合并.嵌入.拆分) 效率与优化管理 提高开发效率,完成页面优化 webpac ...
- nginx禁止浏览器直接打开webpack打包后的js文件
应公司安全测试要求,webpack打包后的js文件不能直接在浏览器打开. 解决方法:通过nginx配置文件过滤,跳转到403页面,代码如下: location / {set $flag 0;if ($ ...
- webpack打包css文件
CSS打包 安装style-loader和 css-loader Webpack 本身只能处理 JavaScript 模块,如果要处理其他类型的文件,就需要使用 loader 进行转换. Loader ...
- Webpack打包css文件-css-loader+style-loader
一,前言 之前"webpack介绍"一篇中提到webpack的四个核心概念:entry-入口,output-出口,loader-加载器,plugins-插件前面打包和输出文件使用了 ...
- webpack打包生成的map文件_从这十几个方面优化你的 Webpack 配置
目录 开发环境性能优化 生产环境性能优化 开发环境性能优化 优化打包构建速度 HMR 优化代码调试 source-map HMR ❝ 概念:「HMR:」 hot module replacement ...
- webpack打包生成的map文件_一站式搞明白webpack中的代码分割
上次分析到通过devtool的配置项来设置source map,在线上环境可以通过设置成cheap-module-source-map来生成单独的map文件,但是map文件在线上环境会不会每次都加载呢 ...
最新文章
- Java Ajax: DWR
- 转:ECharts图表组件之简单关系图:如何轻松实现另类站点地图且扩展节点属性实现点击节点页面跳转...
- HIVE入门之数据模型
- 新闻网大数据实时分析可视化系统项目——7、Kafka分布式集群部署
- vs2008使用技巧
- 苹果iOS13将推出 这些经典手机将会被“淘汰”
- angular学习的一些Mark
- vue element-ui NavMenu错位问题
- 最新仿金蝶电商ERP进销存系统软件源码 销售库存仓库财务管理收银系统网络版
- DA14580蓝牙硬件系统总览(二)
- 码教授|面试官:你还有什么要问我的吗?
- 坚果pro2官方rom_坚果 pro2线刷包_坚果 pro2刷机包_坚果 pro2固件包_坚果 pro2救砖包 - 线刷宝ROM中心...
- 【产品】 产品设计:ID工业设计、MD结构设计、HW硬件设计和SW软件设计详解
- 用java完成身高预测
- 每一个赞扬背后都有一两个“慕名而来”,而每一个抱怨背后都有100个“弃你而去”。
- 荆楚计算机专业分数线理工,荆楚理工学院分数线
- python多图片合并pdf_Python结合ImageMagick实现多张图片合并为一个pdf文件的方法
- php百度云5秒盾,cloudflare如何自定义5秒盾页面教程
- 文科生可报考那些计算机学校,文科生/600分以上可以报考哪些学校?
- 这么简单,抄抄,改改就行啦
热门文章
- 云从科技冲刺IPO:加码人机协同,加速产业落地,预计2025年盈利
- Chrome浏览器读取蓝牙设备数据
- 组合导航-星网宇达M2 配置
- NVIDIA GPU Display Driver 越界写入漏洞(CVE-2022-28181)
- 【先楫HPM6750测评】RT-Thread开发环境搭建和Hello World
- 非技术文章,今天很凄凉
- perl-编译方法(转)
- 北理 嵩天老师 Python程序设计 课后作业易错题总结
- 解决前端ios设备嵌套的H5页面,点击后退按钮,页面存在缓存,不刷新
- ICME 2023 | PACC: RTC 下基于用户感知的拥塞控制