postcss-px-to-viewport在Vite中如何配置

项目描述:

vite + vue3 + ts 移动端

问题描述:

安装完 postcss-px-to-viewport 插件后,按照之前vue-cli项目的方式,src目录下新建 postcss.config.js 文件并进行规则配置。运行起来并未报错,但是发现px并没有转换为vw单位。

问题解决:

因为vite中已经内联了postcss,所以并不需要额外的创建 postcss.config.js文件,vite关于css.postcss 我们只需要在 vite.config.ts中进行配置即可:具体配置如下:

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import postcsspxtoviewport from 'postcss-px-to-viewport'

export default defineConfig({
  plugins: [
    vue()
  ],
  css: {
    postcss: {
      plugins: [
        postcsspxtoviewport({
          unitToConvert: 'px', // 要转化的单位
          viewportWidth: 750, // UI设计稿的宽度
          unitPrecision: 6, // 转换后的精度,即小数点位数
          propList: ['*'], // 指定转换的css属性的单位,*代表全部css属性的单位都进行转换
          viewportUnit: 'vw', // 指定需要转换成的视窗单位,默认vw
          fontViewportUnit: 'vw', // 指定字体需要转换成的视窗单位,默认vw
          selectorBlackList: ['ignore-'], // 指定不转换为视窗单位的类名,
          minPixelValue: 1, // 默认值1,小于或等于1px则不进行转换
          mediaQuery: true, // 是否在媒体查询的css代码中也进行转换,默认false
          replace: true, // 是否转换后直接更换属性值
          // exclude: [/node_modules/], // 设置忽略文件,用正则做目录名匹配
          exclude: [],
          landscape: false // 是否处理横屏情况
        })
      ]
    }
  }
})

完成后重启项目就可以看到px转换为vw单位了。

感谢这篇文章的参考vite postcss

你可能感兴趣的