最新要闻
- 高考首日,考生乘坐“爱心送考车”奔赴考场
- 订购纸箱公司_订购纸箱
- 中国5月外汇储备31765.1亿美元 连续第7个月增加黄金储备
- 买字笔顺怎么读_买字笔顺
- 一到高考就下雨 究竟是不是错觉?专家:亚洲季风导致
- AI考生迎战高考语文!于丹评ChatGPT写的高考作文:毫无灵性和才情 世界快资讯
- 高考离谱榜上新:家长送孩子高考 竟把小女儿忘考场
- 《暗黑破坏神4》梅根福克斯宣传片:祝玩家在游戏中“死得其所”|当前简讯
- 世界热推荐:一箭26星新纪录!中科宇航力箭一号大型固体火箭发射圆满成功
- 15英寸MacBook Air先别买!首发价格太高 降价空间不小|环球今热点
- 商品期货收盘多数下跌,甲醇跌3%,纸浆、尿素、纯碱跌超2%_世界动态
- 环球今头条!宝宝脸上红疙瘩识别图片_宝宝脸上红疙瘩识别图
- 【世界独家】全国职工数字化应用技术技能大赛决赛在福州举行
- 宿便是什么意思_宿便的解释|全球动态
- 氢气还原氧化铁的化学方程式是什么_氢气还原氧化铁的化学方程式|快消息
- 焦点热讯:高考今日开跑,贝克汉姆拍视频用中文喊:“高考加油”
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
全球焦点!Webpack 插件实现 CSS 样式尺寸单位转换
Webpack 插件实现 CSS 样式尺寸单位转换
实现方式一
插件代码
以下是编写的一个 Webpack 插件,用于将样式文件中以 rpx 为单位的值转换为以 px 为单位的值(换算比率为 1px=2rpx):
const pluginName = "CssSzieConvertPlugin";class CssSzieConvertPlugin { apply(compiler) { compiler.hooks.emit.tap(pluginName, (compilation) => { for (const chunk of compilation.chunks) { for (const file of chunk.files) { if (file.endsWith(".css")) { const originalSource = compilation.assets[file].source(); const newSource = originalSource.replace( /\b(\d+(\.\d+)?)(rpx)\b/g, (match, number) => `${number / 2}px` ); compilation.assets[file] = { source: () => newSource, size: () => newSource.length, }; } } } }); }}module.exports = CssSzieConvertPlugin;
上面的代码创建了一个名为 CssSzieConvertPlugin
的插件类。该插件通过注册到 Webpack 的 emit
钩子上来处理样式文件。
(资料图片)
在钩子回调函数中,首先遍历所有的 chunk 和文件,并检查哪些文件是 CSS 文件。通过检查文件扩展名是否为 .css
来识别 CSS 文件。
然后,获取原始文件的源代码,并使用正则表达式 /\b(\d+(\.\d+)?)(rpx)\b/g
匹配所有以 rpx 为单位的数字。使用 replace
方法将每个匹配项替换为一个新的值。使用一个回调函数,将匹配项中的数字除以 2,并将单位从 "rpx" 更改为 "px"。
最后,更新 compilation.assets
对象中的文件源代码和大小,以便 Webpack 可以使用更新后的文件替换原始文件。
使用代码
在 Webpack 配置文件中使用这个插件,例如:
const CssSzieConvertPlugin = require("./CssSzieConvertPlugin");module.exports = { // ... plugins: [ new CssSzieConvertPlugin(), // ... ],};
这将在 Webpack 构建过程中自动应用编写的插件,并将样式文件中的 rpx 值转换为 px 值。
实现方式二
插件代码
以下是编写的另一个 Webpack 插件,用于将样式文件中以 rpx 为单位的值转换为以 px 为单位的值(换算比率为 1px=2rpx):
const pluginName = "CssSzieConvertPlugin";class CssSzieConvertPlugin { constructor(options) { this.options = options || {}; } apply(compiler) { compiler.hooks.emit.tapAsync(pluginName, (compilation, callback) => { const { test = /\.css$/, exclude = /node_modules/ } = this.options; const files = Object.keys(compilation.assets).filter( (filename) => test.test(filename) && !exclude.test(filename) ); files.forEach((file) => { let source = compilation.assets[file].source(); // 使用正则表达式匹配所有以 rpx 为单位的数字 source = source.replace( /\b(\d+(\.\d+)?)(rpx)\b/g, (match, p1) => `${p1 / 2}px` ); // 更新编译后的代码 compilation.assets[file] = { source: () => source, size: () => source.length, }; }); callback(); }); }}module.exports = CssSzieConvertPlugin;
该插件类名为 CssSzieConvertPlugin
,构造函数接受一个选项对象作为参数,该选项对象包含两个属性:test
和 exclude
,它们分别表示要处理的文件类型和要排除的文件。默认情况下,test
属性为 /\css$/
,exclude
属性为 /node_modules/
。
在 apply
方法中,使用 Webpack 的 emit
钩子来处理样式文件。首先使用选项中的正则表达式来过滤要处理的文件,然后遍历这些文件并对它们的源代码进行处理。
对于每个文件,使用正则表达式 /\b(\d+(\.\d+)?)(rpx)\b/g
匹配所有以 rpx 为单位的数字,并将每个匹配项替换为该数字除以 2 的结果。最后,更新编译后的代码,并将更新后的源代码和大小存储在 compilation.assets
对象中。
使用代码
在 Webpack 配置文件中使用这个插件,例如:
const CssSzieConvertPlugin = require("./CssSzieConvertPlugin");module.exports = { // ... plugins: [ new CssSzieConvertPlugin({ test: /\.wxss/, exclude: /node_modules/, }), // ... ],};
这将在 Webpack 构建过程中自动应用编写的插件,并将样式文件中的 rpx 值转换为 px 值。在上面的示例中,指定了要处理的文件类型为
.wxss
文件,并排除了node_modules
目录中的文件。在基于 Webpack 构建工具的 Vue 项目中配置,例如:
// vue.config.jsconst CssSzieConvertPlugin = require("./CssSzieConvertPlugin");module.exports = { configureWebpack: { plugins: [ new CssSzieConvertPlugin({ test: /\.(css|js|html)/, exclude: /node_modules/, }), ], },};
关键词:
全球焦点!Webpack 插件实现 CSS 样式尺寸单位转换
NetCore服务器对接小程序直传阿里云OSS|即时看
高考首日,考生乘坐“爱心送考车”奔赴考场
订购纸箱公司_订购纸箱
中国5月外汇储备31765.1亿美元 连续第7个月增加黄金储备
债市日报:6月7日
买字笔顺怎么读_买字笔顺
一到高考就下雨 究竟是不是错觉?专家:亚洲季风导致
AI考生迎战高考语文!于丹评ChatGPT写的高考作文:毫无灵性和才情 世界快资讯
高考离谱榜上新:家长送孩子高考 竟把小女儿忘考场
《暗黑破坏神4》梅根福克斯宣传片:祝玩家在游戏中“死得其所”|当前简讯
世界热推荐:一箭26星新纪录!中科宇航力箭一号大型固体火箭发射圆满成功
15英寸MacBook Air先别买!首发价格太高 降价空间不小|环球今热点
商品期货收盘多数下跌,甲醇跌3%,纸浆、尿素、纯碱跌超2%_世界动态
环球今头条!宝宝脸上红疙瘩识别图片_宝宝脸上红疙瘩识别图
世界看热讯:链家广州二手房数据 2023
数据驱动的教育创新:大数据在学校的应用_当前资讯
CentOS7 本地光盘镜像rpm包-今日热议
快资讯:DDL语句
slack 团队及个人工作学习的好帮手
天天观天下!土耳其里拉遭遇两年来最大单日抛售
【世界独家】全国职工数字化应用技术技能大赛决赛在福州举行
宿便是什么意思_宿便的解释|全球动态
氢气还原氧化铁的化学方程式是什么_氢气还原氧化铁的化学方程式|快消息
焦点热讯:高考今日开跑,贝克汉姆拍视频用中文喊:“高考加油”
闽清高考生速看!遗忘身份证不要慌
环球实时:高考防作弊磁弹枪亮相:可狙击黑飞无人机
“奔驰小G”正式上市 搭载2.0T四缸发动机 售价142.48万起 天天微头条
为Vision Pro做准备?苹果被曝收购AR初创公司Mira 世界球精选
环球速看:尴尬到家!RX 7600 eBay一周销量为零、RTX 4060 Ti只卖出一块
真心建议:拉完便便 一定要回头看一眼!
美原油交易策略:多空消息交替影响油价,关注EIA数据
吉林高龄补贴2023发放标准:2023吉林省各地区高龄补贴标准是多少?|看点
*ST金山(600396)6月7日主力资金净买入339.20万元
一天杀两白马!长春高新大跌超9%
阿里云 Serverless 容器服务全面升级:新增组件全托管、AI 镜像秒级拉取能力
微信dat文件转图片(jpg,png,gif) 当前快报
看点:港股午评:恒指涨0.97%报19285.1点,科网股普遍收涨
天天新消息丨2023吉网高考观察①丨逐光的你们,就是自己的光!
环球观点:日债市场流动性改善 多数期限品种收益率下行
当前消息!收评:创指跌1.61%续创年内新低 AI概念股走强、新能源赛道股回落
你过桥他爬桥、买个馒头排大队……网红打卡怎样才能不招人烦?
盛和资源(600392)6月7日主力资金净卖出1458.87万元_全球热文
一杯两用:佳适高颜值大容量大肚杯1300ML 19.9元
即时焦点:茅台卖咖啡可加料:12元1.8ml茅台酒 喝完不能开车
网友吐槽苹果Vision Pro头戴卖2.5万太贵 库克回应:物超所值
微软发掘AI“新用途”:搜索Chrome时BingChat打出推广-天天新要闻
一到高考就下雨 究竟是不是错觉?专家:亚洲季风导致 热门
固体饮料能预防疾病?江苏江阴消保委:属虚假宣传|世界头条
长沙会战的意义(长沙会战)_要闻
顶象发布《车企App安全研究白皮书》,剖析品牌汽车App的两大类风险
每日观察!GaussDB(DWS)查询过滤器原理与应用
全球热点!SQL Server 补丁理解及安装 内附完整版下载地址及sp1/2/3补丁
领导看了给你加薪!python +ddt+excel 一招鲜,接口自动化测试轻松搞定,测试报告惊艳四座!-全球独家
世界微速讯:平顶山市:连锁食品经营企业实现“一套材料、一次核查”
学哥学姐暖心寄语:拼搏吧高考少年
全球速读:西部证券:给予巨子生物买进的初始评级,目标价47.24港元。
【环球新视野】盘点高考各地第一个走出考场的考生:将平静面对接下来的考试
全球即时:无人车撞死小狗:系统已识别、还有安全员、就是不刹车!
第27次冲刺 高考钉子户梁实谈语文考试:不是很失败 应该能拿105分
当前热文:比亚迪高考作文押题成功!公关李云飞评论区被刷屏
俞敏洪建议高考完别对答案:正常饮食和睡眠
李凯丽是谁呀_李凯丽 中国女艺人
股权溢价转让怎么纳税
备战亚运!多支国家队来浙江集训
MySQL逻辑架构及执行过程
SQLYog使用教程
jenkins~权限控制 世界热推荐
一份配置轻松搞定表单渲染,配置式表单渲染器在袋鼠云的实现思路与实践
[Docker/K8S]Docker与K8S的区别
券商观点|定制家居行业专题研究:整家与整装战略落地,需求有望逐步改善
全球热讯:超图软件:公司与Unity有紧密的技术合作
聚焦:重大突破!华为发布首款全栈自主数据库GaussDB:真正属于中国人自己的数据库来了
1小时收费6.5元!共享单车悄然涨价超地铁:你还用吗?
宝马轿车被追尾 贬值损失能赔吗
环球视点!kp什么意思网络用语(网络上kp是什么意思)
滞困异星黎明MOTOR-FIGURE种子是什么|热点评
海力布石头图片真实
众星为高考学子加油打气 周冬雨被曝高考仅 286 分-前沿热点
Apache Solr 教程_编程入门自学教程_菜鸟教程-免费教程分享
世界消息!天元宠物:6月6日融资买入131.17万元,融资融券余额2873.89万元
公路交通工程专业承包资质机构_公路交通工程专业承包资质
我市公布海洋公益诉讼成果 发布海洋公益诉讼协同治理最佳方案、海洋公益诉讼十佳案例等|当前热文
猪的智商很高吗?_猪的智商高吗
晶升股份、唯捷创芯等16只科创板股融资余额增幅超10%_新资讯
2023年6月7日山东省二乙氨基乙醇价格最新行情预测|环球时快讯
男子花147万买保时捷提车2天就坏了!4S店:赔8000元代金券
全球看点:网传克扣供应商10%货款 长安汽车发声明:从未收到申诉函、已报案
珠峰获救女子不愿承担费用 律师建议起诉:农夫与蛇风气不可助长-世界焦点
天天热点评!685人晋级2023阿里巴巴全球数学竞赛决赛:清北、麻省理工高手云集
18只个股上午主力净流入超1亿元 华工科技居首 每日动态
【天天播资讯】甘肃省博物馆门票怎么预约(个人+团队)
完善养老保险体系 提高养老保障水平 短讯
讯息:南通和海牛难敌上海双雄,大连人爬坑!国安换帅吧,谢晖送斯坦利一程
涛涛车业:6月6日融资买入523.15万元,融资融券余额4265.74万元
当前观察:最新豆一期货价格行情查询(2023年6月7日)
全球关注:AI人工智能领域精美绘图模板分享
全球热讯:java HttpClient工具类
1万4千条生活小知识常识大全ACCESS\EXCEL数据库
要闻速递:【财经分析】短端利率定价基本合理 机构提示关注调整风险