postcss-pxtorem适配插件动态配置rootValue(根据文件路径名称,动态改变vue.config里配置的值)

项目背景:一个项目里有两个分辨率的设计稿(1920和2400),不能拆开来打包

参考:

是参考vant插件:移动端Vant组件库rem适配下大小异常的解决方案:https://github.com/youzan/vant/issues/1181

说明:

因为vue.config.js文件无法获取window对象,所以任何外部参数都加不进来,甚至无法打印console.log(),领导强制只能打包一次,不能拆分项目,甚至不能分开打包。
所以想到通过判断文件夹名称的方式,因为不同项目,肯定有分开的文件夹包着,特殊的分辨率,按照他路径名称判断有没有这个文件夹名称就行了

代码:

module.exports = ({ file }) => {
  // 适配,根据文件名称,digital-pasture文件下的和他的视频监控全部240
  if (file && (file.indexOf('digital-pasture') > -1 || file.indexOf('surveillanceVideo') > -1)) {
    rootValue = 240
  } else {
    rootValue = 192
  }
  return {
    plugins: {
      autoprefixer: {},
      "postcss-pxtorem": {
        rootValue: rootValue,// 设计稿宽度或者目前正常分辨率的1/10
        // rootValue: 240,// 设计稿宽度或者目前正常分辨率的1/10
        selectorBlackList: [".ivu"],// 要忽略的选择器并保留为px。
        minPixelValue: 2,// 设置要替换的最小像素值。
        propList: [
          "*"
        ]// 需要做转化处理的属性,如`hight`、`width`、`margin`等,`*`表示全部
      }
    }
  }
} 

效果图:
总之1920和2400下的设计稿都可以正常适配了
在这里插入图片描述

在这里插入图片描述

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
postcss-pxtorem插件配置可以通过在vue.config.js配置文件中引入并设置相关参数实现。在plugins选项中添加postcss-pxtorem插件,并在该插件配置中设置rootValue和propList属性。其中,rootValue属性用于指定转换比例,将px转换为rem,propList属性用于指定需要转换的CSS属性。例如,可以将rootValue设置为37.5,以适配vant插件的设计稿,propList可以设置为['*']以转换所有属性。以下是一个配置示例: ``` const pxtorem = require('postcss-pxtorem'); module.exports = { css: { loaderOptions: { postcss: { plugins: [ pxtorem({ rootValue: 37.5, // 根据自己的设计稿配置,这配置的是宽度375的设计稿(如果使用了vant插件) propList: ['*'], selectorBlackList: ['van-circle__layer'] // 可选,需要忽略的CSS选择器 }) ] } } } }; ``` 这样配置后,postcss-pxtorem插件就会按照指定的比例将CSS文件中的px单位转换为rem单位。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [postcss-pxtorem 插件配置](https://blog.csdn.net/weixin_58414196/article/details/123639073)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [vue移动端项目rem自适应适配插件postcss-pxtorem的使用](https://blog.csdn.net/weixin_51697449/article/details/121417760)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值