@vue/cli将px转换成rem单位配置(flexible,px2rem)

本文介绍如何在Vue3项目中配置px2rem,实现响应式布局。通过安装lib-flexible、postcss-loader和postcss-px2rem,以及在vue.config.js中设置postcss-loader插件,实现px单位自动转换为rem单位。文章还提供了处理1px边框和font-size属性的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

与原来的vue-cli 2.x版本不同的是:如果使用最新版本的@vue/cli初始化vue项目时,通常看不到webpack的配制文件。而在原来的2.x版本,我们可以在utils.js中轻松配制px2rem相关配置。为了解决这个问题,我研究了一下vue-cli的官方文档,发现我们仍然可以像以往那样配制。具体步骤如下:

  1. 安装

安装lib-flexible: npm install --save lib-flexible

安装postcss-loader和postcss-px2rem: npm install --save-dev postcss-loader postcss-px2rem

  1. 在项目入口文件main.js中引入lib-flexible

import 'lib-flexible/flexible'(加上.js会通不过eslint的语法校验)

  1. 在根目录下创建配制文件vue.config.js,并配制如下信息
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: 75,
        })],
      },
    },
  },
}

这个文件配制的信息将会被合并到类似原来2.x版本的webpack.config.js当中。

注意: remUnit在这里要根据lib-flexible的规则来配制,如果您的设计稿是750px的,用75就刚刚好。

  1. 温馨提示
      当你遇到1px的边框时,通常容易发现页面缺失部分边框,这时你可以使用/no/语法来屏蔽该属性转换,例如:

border: 1px solid red; /*no*/

由于字体的特殊性,我们在编译font-size属性时,通常不使用rem单位,这时候你可以这样使用:

     font-size: 24px; /*px*/
npm install postcss-pxtorem autoprefixer amfe-flexible -D npm error code ERESOLVE npm error ERESOLVE could not resolve npm error npm error While resolving: @vue/cli-plugin-eslint@4.5.19 npm error Found: eslint@7.32.0 npm error node_modules/eslint npm error peer eslint@">= 7.28.0" from @vue/eslint-config-prettier@7.1.0 npm error node_modules/@vue/eslint-config-prettier npm error dev @vue/eslint-config-prettier@"^7.0.0" from the root project npm error peer eslint@">= 4.12.1" from babel-eslint@10.1.0 npm error node_modules/babel-eslint npm error dev babel-eslint@"^10.1.0" from the root project npm error 6 more (eslint-config-prettier, eslint-plugin-prettier, ...) npm error npm error Could not resolve dependency: npm error peer eslint@">= 1.6.0 < 7.0.0" from @vue/cli-plugin-eslint@4.5.19 npm error node_modules/@vue/cli-plugin-eslint npm error dev @vue/cli-plugin-eslint@"^4.5.15" from the root project npm error npm error Conflicting peer dependency: eslint@6.8.0 npm error node_modules/eslint npm error peer eslint@">= 1.6.0 < 7.0.0" from @vue/cli-plugin-eslint@4.5.19 npm error node_modules/@vue/cli-plugin-eslint npm error dev @vue/cli-plugin-eslint@"^4.5.15" from the root project npm error npm error Fix the upstream dependency conflict, or retry npm error this command with --force or --legacy-peer-deps npm error to accept an incorrect (and potentially broken) dependency resolution. npm error npm error npm error For a full report see: npm error C:\Users\admin\AppData\Local\npm-cache\_logs\2025-03-05T03_23_29_961Z-eresolve-report.txt npm error A complete log of this run can be found in: C:\Users\admin\AppData\Local\npm-cache\_logs\2025-03-05T03_23_29_961Z-debug-0.log
最新发布
03-08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值