vue.config配置 px2rem实现pc端大屏自适应(rem适配)

配置前言
项目构建:基于vue-cli3构建,使用postcss-px2rem px2rem-loader进行rem适配
实现原理:每次打包,webpack通过使用插件postcss-px2rem,帮我们自动将px单位转换成rem单位
前方有坑:UI框架部分组件使用JavaScript将css作为内联样式直接写在html标签内,打包适配时不会读取相关css,所以要配置相关样式,在style中需要" !important "进行样式覆盖。

第一步,安装postcss-px2rem及px2rem-loader

npm install postcss-px2rem px2rem-loader --save

  

第二步,在根目录src中新建util目录下新建rem.js等比适配文件

// rem等比适配配置文件
// 基准大小
const baseSize = 16
// 设置 rem 函数
function setRem () {
  // 当前页面宽度相对于 1920宽的缩放比例,可根据自己需要修改。
  const scale = document.documentElement.clientWidth / 1920
  // 设置页面根节点字体大小(“Math.min(scale, 2)” 指最高放大比例为2,可根据实际业务需求调整)
  document.documentElement.style.fontSize = baseSize * Math.min(scale, 2) + 'px'
}
// 初始化
setRem()
// 改变窗口大小时重新设置 rem
window.onresize = function () {
  setRem()
}

  

第三步,在main.js中引入适配文件

import './utils/rem'

  

第四步,到vue.config.js中配置插件,在chainWebpack中加入

  config.module
    .rule('scss')
    .oneOf('vue')
    .use('px2rem-loader')
    .loader('px2rem-loader')
    .before('postcss-loader')
    .options({ remUnit: 16 }), // 这里的16数字要和rem.js里面的一致
    .end()

  

 

posted @ 2021-06-22 14:35  惠鹏曦  阅读(1475)  评论(0编辑  收藏  举报