Vue-cli 将px转化为rem,适配移动端(vue-cli2.x 和 vue-cli3中的使用)

一. Vue-cli2.x中的用法
1.下载lib-flexible
我使用的是vue-cli+webpack,所以是通过npm来安装的

npm i lib-flexible --save
2.引入lib-flexible
main.js中引入lib-flexible

import 'lib-flexible/flexible'
3.设置meta标签
通过meta标签,设置设备宽度以及缩放比例


4.安装px2rem-loader
npm install px2rem-loader --save-dev
5.配置px2rem-loader
这里是重要的一步~~

build文件中找到util.js,将px2rem-loader添加到cssLoaders中,如:

复制代码

const cssLoader = {
    loader: 'css-loader',
    options: {
      minimize: process.env.NODE_ENV === 'production',
      sourceMap: options.sourceMap
    }
  }
  const px2remLoader = {
    loader: 'px2rem-loader',
    options: {
      remUnit: 75
    }
  }

同时,在generateLoaders方法中添加px2remLoader


function generateLoaders (loader, loaderOptions) {
    const loaders = [cssLoader,px2remLoader]
    if (loader) {
      loaders.push({
        loader: loader + '-loader',
        options: Object.assign({}, loaderOptions, {
          sourceMap: options.sourceMap
        })
      })
    }

6.重启,一切ok~
当配置完之后,只需要重启下服务,就自动转化为rem
npm run dev

二. Vue-cli3 中的用法
文章转自:https://blog.csdn.net/qq_31393401/article/details/82353267

关于移动端的适配,我喜欢用px2rem配合lib-flexible,非常方便,vue-cli3.0后,项目配置被大大精简了,这使得原来配置px2rem的文件不复存在,但其实只要掌握了正确的姿势,配置方法比原来更简单~

lib-flexible
作用:让网页根据设备dpr和宽度,利用viewporthtml根元素的font-size配合rem来适配不同尺寸的移动端设备
安装:yarn add lib-flexible
引入:入口文件main.js中:import 'lib-flexible/flexible.js'

pxtorem
作用:将项目中csspx转成rem单位,免去计算烦恼
安装:yarn add postcss-pxtorem
配置:package.json内,在postcss内添加:

"postcss": {
    "plugins": {
      "autoprefixer": {},
      "postcss-pxtorem": {
        "rootValue": 75 // 设计稿宽度的1/10,
        "propList":['*'],// 需要做转化处理的属性,如`hight`、`width`、`margin`等,`*`表示全部
     }
    }
  },

TIPS
1、pxtorem中,对于想忽略的px写成大写即可,诸如border:1PX solid #fff;
2、vue-cli3.0 更原生的适配移动端解决方案:vw

你可能感兴趣的:(webpack)