postcss.config.js 动态配置基准值

在Vue项目中引入PostCSS可以实现不同分辨率的自适应,通常在H5项目中使用

  1. 安装插件
bash 复制代码
npm install --save-dev postcss postcss-loader autoprefixer
  1. 新建postcss.config.js文件,添加下列配置项
javascript 复制代码
module.exports = {
  plugins: {
    'postcss-px-to-viewport': {
      unitToConvert: 'px', // 要转换的单位
      viewportWidth: 750, // 设计稿宽度
      unitPrecision: 5, // 单位转换后保留的精度
      propList: ['*'], // 指定转换那些属性,*表示全部
      viewportUnit: 'vw', // 希望使用的视口单位
      fontViewportUnit: 'vw', // 字体使用的视口单位
      selectorBlackList: [], // 要忽略的选择器
      minPixelValue: 1, // 最小的转换数值
      mediaQuery: false, // 是否在媒体查询中也转换px
      replace: true, // 是否直接更换属性值
      exclude: /(\/|\\)(node_modules)(\/|\\)/, // 忽略某些文件夹下的文件或者某些特定文件
    }
  }
}
  1. 如果一个H5项目,即有移动端的页面,又有PC端的页面,且为不同迟勋的设计稿,移动端的H5需要根据屏幕进行自适应,而PC端不需要进行自适应,或者因为设计稿不同,设置的基准值和移动端不是同一个。这种情况下可以通过文件路径去判断我们要设置什么样的基准值了
javascript 复制代码
module.exports = ((value) => {
  // 不让页面随屏幕的变化而变大变小的文件名称
  let originalSizePage = ['homePc']
  // 文件路径,包括文件名称
  let path = value.webpack.resourcePath
  // 该文件是否要设置基准值(是否要根据屏幕分辨率去缩放)
  let isOriginalSize = false
  if(path){
    originalSizePage.forEach(name => {
      if(path.includes(name)){
        isOriginalSize = true
      }
    })
  }
  // console.log("**webpack: --" , path, isOriginalSize)

  if(isOriginalSize){
    // 不需要缩放
    return {}
  }else{
    // 需要缩放
    return {
      plugins: {
        'postcss-px-to-viewport': {
          unitToConvert: 'px', // 要转换的单位
          viewportWidth: 750, // 设计稿宽度, 可以根据文件名称不定义不同的宽度 flag ? 1920 : 750
          unitPrecision: 5, // 单位转换后保留的精度
          propList: ['*'], // 指定转换那些属性,*表示全部
          viewportUnit: 'vw', // 希望使用的视口单位
          fontViewportUnit: 'vw', // 字体使用的视口单位
          selectorBlackList: [], // 要忽略的选择器
          minPixelValue: 1, // 最小的转换数值
          mediaQuery: false, // 是否在媒体查询中也转换px
          replace: true, // 是否直接更换属性值
          exclude: /(\/|\\)(node_modules)(\/|\\)/, // 忽略某些文件夹下的文件或者某些特定文件
        }
      }
    }
  }
})
相关推荐
灵感__idea5 小时前
Hello 算法:贪心的世界
前端·javascript·算法
killerbasd8 小时前
牧苏苏传 我不装了 4/7
前端·javascript·vue.js
橘子编程9 小时前
JavaScript与TypeScript终极指南
javascript·ubuntu·typescript
叫我一声阿雷吧10 小时前
JS 入门通关手册(45):浏览器渲染原理与重绘重排(性能优化核心,面试必考
javascript·前端面试·前端性能优化·浏览器渲染·浏览器渲染原理,重排重绘·reflow·repaint
大家的林语冰10 小时前
《前端周刊》尤大开源 Vite+ 全家桶,前端工业革命启动;尤大爆料 Void 云服务新产品,Vite 进军全栈开发;ECMA 源码映射规范......
前端·javascript·vue.js
jiayong2310 小时前
第 8 课:开始引入组合式函数
前端·javascript·学习
天若有情67311 小时前
【C++原创开源】formort.h:一行头文件,实现比JS模板字符串更爽的链式拼接+响应式变量
开发语言·javascript·c++·git·github·开源项目·模版字符串
M ? A12 小时前
Vue 迁移 React 实战:VuReact 一键自动化转换方案
前端·vue.js·经验分享·react.js·开源·自动化·vureact
yuki_uix12 小时前
重排、重绘与合成——浏览器渲染性能的底层逻辑
前端·javascript·面试
Burt12 小时前
我的 2026 全栈选型:Vue3 + Elysia + Bun + AlovaJS
vue.js·全栈·bun