首页 > 其他分享 >Vue-cli 将px转化为rem适配移动端

Vue-cli 将px转化为rem适配移动端

时间:2024-04-24 11:23:35浏览次数:13  
标签:npm Vue cli lib px2rem 适配 loader flexible options

vue-cli2版本配置

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标签,设置设备宽度以及缩放比例

<meta name="viewport" content="width=device-width, initial-scale=1.0">

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 中的用法

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

1、lib-flexible

作用:让网页根据设备dpr和宽度,利用viewport和html根元素的font-size配合rem来适配不同尺寸的移动端设备

npm i lib-flexible --save
引入:

入口文件main.js中:

import 'lib-flexible/flexible.js'
2、pxtorem

作用:将项目中css的px转成rem单位,免去计算烦恼

npm i postcss-px2rem --save

配置:vue.config.js(如果没有,手动创建一个)内,在postcss内添加:

module.exports = {
  css: {
      loaderOptions: {
          css: {
              // options here will be passed to css-loader
          },
          postcss: {
              // options here will be passed to postcss-loader
              plugins: [require('postcss-px2rem')({
                  remUnit: 37.5
              })]
          }
      }
  }
}

TIPS
1、pxtorem中,对于想忽略的px写成大写即可,诸如 border:1PX solid #fff;
2、也可以选择postcss-px2rem,我更喜欢pxtorem的忽略方式,方便我vscode的beautify自动格式化代码

转载于:https://blog.csdn.net/qq_40631679/article/details/103200912 

标签:npm,Vue,cli,lib,px2rem,适配,loader,flexible,options
From: https://www.cnblogs.com/xuxuguaiguai/p/18154656

相关文章

  • 并发编程(CyclicBarrier)
    CyclicBarrier是一个同步器,允许一组线程相互之间等待,直到到达某个公共屏障点(commonbarrierpoint),再继续执行CyclicBarrier与CountDownLatch异同都可以阻塞一组线程等待被唤醒CyclicBarrier是最后一个线程到达后会自动唤醒,而CountDownLatch需要显式调用countDown方法Cyc......
  • vue tab切换滑动门
    <scriptsetuplang="ts">import{ref}from"vue";constselectName=ref('技术指标及标准')constnacigation=ref(['技术指标及标准','文献著作','报告模版','专家库/项目库',])</script><template&......
  • 「Java开发指南」如何利用MyEclipse启用Spring DSL?(二)
    本教程将引导您通过启用SpringDSL和使用ServiceSpringDSL抽象来引导Spring和Spring代码生成项目,本教程中学习的技能也可以很容易地应用于其他抽象。在本教程中,您将学习如何:为SpringDSL初始化一个项目创建一个模型包创建一个服务和操作实现一个服务方法启用JAX-WS和DWR......
  • macOS配置Clion用于STM32开发找不到stdint.h等头文件问题解决方案
    问题编译工程时发现出现大量类似错误如下/opt/homebrew/Cellar/arm-none-eabi-gcc/13.2.0/lib/gcc/arm-none-eabi/13.2.0/include/stdint.h:9:16:fatalerror:stdint.h:Nosuchfileordirectory问题原因不能使用brewinstallarm-none-eabi-gcc安装编译工具链[1]解决方......
  • python3下安装mysqlclient各种报错 raise OSError mysql_config not found
    linux下载地址:https://files.pythonhosted.org/packages/a5/e1/e5f2b231c05dc51d9d87fa5066f90d1405345c54b14b0b11a1c859020f21/mysqlclient-2.0.1.tar.gz#sha256=fb2f75aea14722390d2d8ddf384ad99da708c707a96656210a7be8af20a2c5e5在服务器执行pipinstallmysqlclient-2.0.......
  • Clickhouse-客户端查询命令
    --连接客户端,-m参数用于表示支持SQL换行,多行模式。clickhouse-client--userdefault--password123456--port9001-m; --查询数据库showdatabases; --查看集群名称select*fromsystem.clusters;--在集群上创建数据库createdatabasecluster_dbonc......
  • 适配器
    容器适配器,其就是将不适用的序列式容器(包括vector、deque和list)变得适用。STL提供了3种容器适配器,分别为stack栈适配器、queue队列适配器以及priority_queue优先权队列适配器。容器适配器基础容器筛选条件默认使用的基础容器stack基础容器需包含以下成员......
  • 前端在浏览器显示摄像头传回的RTSP视频流,前端采用的技术有VUE+video.js+flv.js
    在前端使用Vue.js框架,结合video.js和flv.js播放RTSP视频流,需要经过一系列步骤,因为浏览器并不能直接播放RTSP流,所以通常需要一个服务器来将RTSP流转为HLS或FLV格式,然后前端再通过flv.js播放。以下是一个基于此思路的基本实现指南:确保你已经安装了Vue.js、video.js、flv.js相关的依......
  • Vue路由传值-路由组件传值
    在路由配置中设置需要传递参数的路由,并在路由路径中定义参数占位符:点击查看代码constroutes=[{path:'/user/:id',name:'user',component:UserComponent}];在触发路由跳转时,通过router.push方法传递参数:点击查看代码this.$router.push(......
  • vue生命周期
    生命周期1是什么:Vue在关键时刻帮我们调研员的一些特殊名称的函数2生命周期的函数名字是不可更改3生命周期函数的this指向是vm或组件的实例对象mounted挂载Vue完成模版的解析并把初始的真实DOM元素放入页面后(挂载完毕)调用mounted页面中呈现的是经过Vue编译的DOM。对......