在vue-cli3.0中使用postcss-plugin-px2rem 插件

插件的作用是 自动将vue项目中的px转换为rem 
postcss-plugin-px2rem优势:
  因为 postcss-plugin-px2rem 这个插件  配置选项上有  exclude 属性,它可以配置 是否对 某个文件夹下的所有css文件不进行从px到rem的转换。
  所以我们可以利用这个特性,把项目中的  node_module 文件夹排除掉。这样如果我们项目中是用了,前端UI框架的话,就不会吧UI框架(Vant,Element等)中的 px单位转换成rem了
文档:
postcss-plugin-px2rem官方文档:https://www.npmjs.com/package/postcss-plugin-px2rem
postcss-pxtorem官方文档:https://www.npmjs.com/package/postcss-pxtorem
postcss-px2rem官方文档:https://www.npmjs.com/package/postcss-px2rem

安装插件(安装对应包)

npm i postcss-plugin-px2rem  --save -dev
或
npm i postcss-pxtorem  --save -dev
或
npm i postcss-px2rem --save -dev
或
npm i postcss-loader --save-dev

配置方法

在vue-cli3.0中。去掉了build和config文件夹。所有的配置都放到了vue.config.js中(默认为空,如果没有这个文件自己写一个)

module.exports = {//px转rem的配置(postcss-plugin-px2rem插件)lintOnSave: true,css: {loaderOptions: {postcss: {plugins: [require('postcss-plugin-px2rem')({// rootValue: 100, //换算基数, 默认100  ,这样的话把根标签的字体规定为1rem为50px,这样就可以从设计稿上量出多少个px直接在代码中写多上px了。// unitPrecision: 5, //允许REM单位增长到的十进制数字。//propWhiteList: [],  //默认值是一个空数组,这意味着禁用白名单并启用所有属性。// propBlackList: [], //黑名单exclude: /(node_module)/,  //默认false,可以(reg)利用正则表达式排除某些文件夹的方法,例如/(node_module)/ 。如果想把前端UI框架内的px也转换成rem,请把此属性设为默认值// selectorBlackList: [], //要忽略并保留为px的选择器// ignoreIdentifier: false,  //(boolean/string)忽略单个属性的方法,启用ignoreidentifier后,replace将自动设置为true。// replace: true, // (布尔值)替换包含REM的规则,而不是添加回退。mediaQuery: false,  //(布尔值)允许在媒体查询中转换px。minPixelValue: 3 //设置要替换的最小像素值(3px会被转rem)。 默认 0}),]}}},
}

在vue-cli3中使用postcss-pxtorem和 postcss-px2rem 配置类似,如下

使用postcss-pxtorem 时vue.config.js配置

module.exports = {lintOnSave: true,css: {loaderOptions: {postcss: {plugins: [require('postcss-pxtorem')({//这里是配置项,详见官方文档rootValue : 1, // 换算的基数selectorBlackList  : ['weui','mu'], // 忽略转换正则匹配项propList   : ['*'],}),]}}},
}

使用postcss-px2rem时的vue.config.js配置

//方式一(♥):
const px2rem = require('postcss-px2rem')
const postcss = px2rem({remUnit: 75   //基准大小 baseSize,需要和rem.js中相同
})module.exports = {/* 注意sass,scss,less的配置 */productionSourceMap: false, // 生产环境是否生成 sourceMap 文件css: {loaderOptions: {postcss: {plugins: [postcss]}}}
}//====================================================================
//方式二:
module.exports = {lintOnSave: true,css: {loaderOptions: {postcss: {plugins: [require('postcss-px2rem')({ //配置项,详见官方文档remUnit: 30}), // 换算的基数]}}},
}//====================================================================
//方式三:
var px2rem = require('postcss-px2rem');module.exports = {module: {loaders: [{test: /\.css$/,loader: "style-loader!css-loader!postcss-loader"}]},postcss: function() {return [px2rem({remUnit: 75})];}
}

如果个别地方不想转化px。可以简单的使用大写的 PX 或 Px


public/index.html下

<script>const baseSize = 100 // 基准值function setRem() {// 相对于1920像素的缩放比let scale = document.documentElement.clientWidth / 1920// 根据屏幕变化 1rem 对应的 font-sizescale = scale > 1 ? 1 : scale;const realFont = baseSize * scaledocument.documentElement.style.fontSize = realFont + 'px'}setRem()window.onresize = () => {setRem()}
</script>

安装postcss-px2rem

npm install postcss-px2rem -D

vue.config.js中配置

const px2rem = require('postcss-px2rem')const postcss = px2rem({remUnit: 100 // 基准值
})module.exports = {publicPath: './',css: {loaderOptions: {postcss: {plugins: [postcss]}}}
}

vue中使用px,会自动转化为rem

.home {font-size: 25px; // --> font-size: 0.25rem; (25 / 基准值)
}

使用postcss-plugin-px2rem和postcss-pxtorem(postcss-px2rem)-px自动转换rem的配置方法-vue-cli3.0相关推荐

  1. [object Object] is not a PostCSS plugin

    最近在做移动端的项目时,想让px自动转换为rem布局,做到屏幕自适应.在安装postcss-pxtorem时 npm install postcss-pxtorem -S 然后运行npm run de ...

  2. Vue3中遇到问题:PostCSS plugin tailwindcss requires PostCSS 8 解决方案

    文章目录 遇到问题 解决方法 参考 遇到问题 ERROR Failed to compile with 1 error 4:45:27 PMerror in ./src/assets/tailwind ...

  3. vue Syntax Error Error PostCSS plugin postcss-pxtorem requires PostCSS 8

    vue Syntax Error: Error: PostCSS plugin postcss-pxtorem requires PostCSS 8. Migration guide for end- ...

  4. PostCSS plugin postcss-uniapp-plugin requires PostCSS 8

    最近刚遇到一个奇葩问题.项目开发开发好好的,突然运行就报错了. Syntax Error: Error: PostCSS plugin postcss-uniapp-plugin requires P ...

  5. PostCSS a not plugin 打包is jenkins打包发布问题跟踪 Error: [object Object] is not a PostCSS plugin

    之前在develop平台上 一个前台项目全自动构建都正常,昨天构建失败了,报错信息如下: ERROR Failed to compile with 191 errors3:44:52 PMerror ...

  6. Error: PostCSS plugin autoprefixer requires PostCSS 8. Update PostCSS or downgrade this plugin。

    Error: PostCSS plugin autoprefixer requires PostCSS 8. Update PostCSS or downgrade this plugin. 问题描述 ...

  7. cli3 px转rem适配移动端_Vue CLI3移动端适配(px2rem或postcss-plugin-px2rem)

    今天,我们使用vue cli3 做一个移动端适配 . 前言 首先确定你的项目是vue cli3版本以上的. 一.移动端适配包 1.安装移动端适配包 npm i lib-flexible -s 2.在 ...

  8. Vue CLI3 移动端适配 【px2rem 或 postcss-plugin-px2rem】

    今天,我们使用Vue CLI3 做一个移动端适配 . 前言 首先确定你的项目是Vue CLI3版本以上的. 一.移动端适配包 1.安装移动端适配包 npm i lib-flexible -S 2.在m ...

  9. vue-cli使用px2rem 或 postcss-plugin-px2rem px转换rem

    1.安装插件 (1)安装px2rem-loader(devDependencies) npm install px2rem-loader --save-dev (2)移动端适配解决npm包 " ...

  10. 移动端适配-flexible.js使用(解决对外部引入css,px2rem能不能转换rem问题)

    移动端flexible.js 适用于最新版vue-cli,配置手淘的lib-flexible.js和rem实现移动端页面自适应 1.安装lib-flexible.js npm install lib- ...

最新文章

  1. 数据结构与算法(C++)– 树(Tree)
  2. Anti-AdBlock 反AdBlock
  3. 关于int类型除以1000后保留两位小数的问题,并且在excel里打印出来
  4. 自定义异常的两种方式
  5. 数据结构课程设计- (二) 栈与队列(迷宫问题)
  6. 数据流图、数据字典的画法
  7. PDM,读《电商产品经理宝典:电商后台系统产品逻辑全解析》
  8. 单龙芯3A3000-7A1000PMON研究学习-(17)撸起袖子干-分析代码前的准备工作4-地址映射
  9. 大厂P5、P6、P7级程序员的简历长什么样?
  10. RL(Chapter 5): Monte Carlo Methods (MC) (蒙特卡洛方法)
  11. 全网最详细的Android11.0长按power键关机流程分析
  12. Ubuntu 20.04 LTS (Focal Fossa) OVF 模板下载 百度网盘
  13. 使用Hypothesis生成测试数据
  14. 汽车模具转角分型面做法
  15. 腾讯云API与国家气象局API获取实时天气
  16. 数据库字段动态扩展设计
  17. oracle中更改用户名,Oracle 更改用户名
  18. 非常全面的支付宝钱包系统架构图解
  19. 混币器Tornado遭制裁 对DeFi市场意味着什么?
  20. 【mac】No Xcode or CLT version detected!解决办法

热门文章

  1. Java float转int
  2. php合并数组并且去重,php合并数组
  3. 营养,运动与健康;控制饮食+体育锻炼
  4. selenium破解B站极验验证码
  5. STM32——独立看门狗
  6. 【IOS】In-App Purchases入门
  7. 2021上海益生产品(益生菌)展告知您吃益生菌多久才有效?
  8. java计算器类方法_java用类和方法的方式写的简单计算器
  9. vi/vim使用进阶: 移动光标操作(一)
  10. vim编辑器操作和配置命令大全