vue-cli 2.x和3.x配置移动端适配px自动转为rem
移动端适配一直都是个大问题,现在也出现了各种各样的解决方案,比如 rem, vw 百分比等,但是比较成熟的切比较容易编写的还是 rem,他是相对于根元素的 font-size 进行等比例计算的。
但是我们在编写css的时候,需要计算每一个元素相对于根元素的rem值是多少。会比较麻烦,并且维护起来也不方便。那么社区也出现了各种解决方案。
早期的解决方案是利用 sass 或者less编写函数进行自动转换。到后来淘宝的lib-flexible,再到现在的 postcss,都是为了编写的时候写的是px,会自动转为 rem。下面我们就来看下vue-cli2.x 和 3.x 如何去配置。
vue-cli2.x
1. 安装依赖
npm install px2rem-loader --save-dev
npm install lib-flexible --save
2. 在 src/main.js 中引入
import 'lib-flexible';
3. 在 build/utils.js 中加入以下代码
exports.cssLoaders = function (options) {
// ...
const px2remLoader = {
loader: 'px2rem-loader',
options: {
remUnit: 75
}
}
// ...
function generateLoaders (loader, loaderOptions) {
// 在原来的loader添加上px2remLoader
const loaders = options.usePostCSS ? [cssLoader, postcssLoader, px2remLoader] : [cssLoader, px2remLoader]
// ...
}
}
4. 如果想要页面的viewport缩放则需要将 index.html 中注释掉原来的设置
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<!--
官方上说是要把这里注释掉
此处注释掉之后,lib-flexible 会根据不同的屏幕自动添加,比如2倍屏这里就是 0,5 但是,我这用的时候有点坑。。
如果将此注释掉,在某些需要写 px 的地方,就会出现在不同的屏幕上看到的 大小不一样的问题,因为缩放的比例不同了。比如富文本渲染,就得用px
解决办法是使用不注释此代码,在任何手机上都是按照1倍进行缩放。。px2remloader会自动计算,不会有问题
这里看各自项目的需要吧
-->
vue-cli 3.x
1. 下载依赖
npm install postcss-pxtorem --save-dev // 此处和2.x 不一样的插件
npm install lib-flexible --save
2. 在 src/main.js 中引入
import 'lib-flexible/flexible.js'; // 此处和2.x不一样
3. 在package.json中配置
// 在最后添加此脚本
{
"postcss": {
"plugins": {
"autoprefixer": {},
"postcss-pxtorem": {
"rootValue": 75,
"propList": [
"*"
]
}
}
}
}
4. 如果想要页面的viewport缩放则需要将 public/index.html 中注释掉原来的设置, 通上面的第四步
demo 可参考本人的配置
cli2.x: https://github.com/Shenjieping/app-cli
cli3.x: https://github.com/Shenjieping/app-cli-v3
vue-cli 2.x和3.x配置移动端适配px自动转为rem的更多相关文章
- @vue/cli 3.x项目脚手架 webpack 配置
@vue/cli 是一个基于 Vue.js 进行快速开发的完整系统. @vue/cli 基于node服务 需要8.9以上版本 可以使用 nvm等工具来控制node版本 构建于 webpack ...
- vue换算单位px自动转换rem
cnpm i postcss-px2rem --save cnpm install px2rem-loader --save 2.配置px2rem build目录下vue-loader.conf.js ...
- vue项目中px自动转换为rem
.安装 postcss-pxtorem : npm install postcss-pxtorem -D .修改 /build/utils.js 文件 找到 postcssLoader const p ...
- Vue CLI3 移动端适配 【px2rem 或 postcss-plugin-px2rem】
Vue CLI3 移动端适配 [px2rem 或 postcss-plugin-px2rem] 今天,我们使用Vue CLI3 做一个移动端适配 . 前言 首先确定你的项目是Vue CLI3版本以上的 ...
- 基于Vue/React项目的移动端适配方案
本文的目标是通过下文介绍的适配方案,使用vue或react开发移动端及H5的时候,不需要再关心移动设备的大小,只需要按照固定设计稿的px值布局,提升开发效率. 下文给出了本人分别使用create-re ...
- Vue CLI 3.0脚手架如何在本地配置mock数据
前后端分离的开发模式已经是目前前端的主流模式,至于为什么会前后端分离的开发我们就不做过多的阐述,既然是前后端分离的模式开发肯定是离不开前端的数据模拟阶段. 我们在开发的过程中,由于后台接口的没有完成或 ...
- vue cli 3 lintOnSave 配置有时无效问题
一个使用vue cli 3.2创建的项目,创建时未开启 lintOnSave,后来希望开启并设置为 lintOnSave: 'error',但配置不生效. 解决方法1:新创建项目(此时vue cli ...
- 使用 vue-cli-service inspect 来查看一个 Vue CLI 3 项目的 webpack 配置信息(包括:development、production)
使用 vue-cli-service inspect 来查看一个 Vue CLI 3 项目的 webpack 配置信息(包括:development.production) --mode 指定环境模式 ...
- VUE cli 4.x下配置多页面以及同时配置支持element-ui及mint-ui并且优化首页文件大小。
场景,公司的一个小型项目,需同时支持移动端和PC端.最开始考虑做两个独立的项目.但后来考虑到总共只有4个功能页面,布署起来相对麻烦.所以决定做在一个项目里. 1.升级vue-cli到4.x npm i ...
随机推荐
- 经典卷积神经网络算法(5):ResNet
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...
- Java前端面试题总结
Java前端面试题总结 简单说一下HTML,CSS,javaScript在网页开发中的定位? HTML:超文本标记语言,定义网页的结构 CSS:层叠样式表,用来美化页面 JavaScript:主要用来 ...
- 版本控制工具 GIT入门教程
GIT 在团队中的中作流程 1.每个程序员在自己的分支上进行开发 2.主程序猿/Leader合并程序员程序 3.程序员之间也可以对一下提交冲突进行合并 下载和安装 GIT官方网址:http:// gi ...
- node+ajax实战案例(2)
2.静态资源渲染 2.1.创建http服务器 var http = require('http'); var url = require('url'); var app = http.createSe ...
- DOM-BOM-EVENT(6)
6.BOM 6.1.什么是BOM? BOM(Browse Object Model),浏览器对象模型,没有相关标准,是约定俗成的东西,定义了一些操作浏览器的方法和属性,大部分方法都是通过window对 ...
- Halcon斑点分析涉及算子及其高阶运用
涉及算子 获取图像 使用ROI 对齐ROI或图像 校正图像 基础内容这里不再重述 预处理图像(过滤) 基础: mean_image(平均平滑过滤),gauss_filter(高斯滤波),binomia ...
- 浅谈bfs
广搜(bfs) 定义 广度优先算法,简称BFS.是一种图形搜索演算法,简单的说,BFS是从根节点开始,沿着树的宽度遍历树的节点,如果发现目标,终止. 与dfs的相似之处与不同 结合深搜理解 相同点:都 ...
- Python-使用tkinter实现的摇骰子小游戏
贴吧看到的一个求助题,大致需求是:3个人摇骰子,每人摇3次,点数之和最大的获胜,支持玩家名称输入.我觉得这个题目挺有意思的,做了个界面程序,欢迎大家交流指正~ #!usr/bin/env python ...
- CenterOS的安装配置(配图解)
CenterOS的安装配置 一. 配置虚拟机 打开Virtual Machine(虚拟机),点击create new virtual machine 进入新建虚拟机向导页面,选择[Custom( ...
- Dubbo远程调用之公司内部提供的服务
公司内部提供的服务 一家对外提供服务的公司,例如百度,腾讯,阿里,京东,58 同城等,公司内部有多个事业群,事业部门,每个事业部门内部又有若干个子部门,子部门里面有多个不同的小组负责各自的业务.提供对 ...