vite
1.安装
npm install postcss-pxtorem -D
2. 配置 (vite.config.js)
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import postcsspxtorem from 'postcss-pxtorem'
import path from 'path';
// https://vitejs.dev/config/
export default defineConfig({
plugins: [vue()],
resolve: {
//文件后缀省略导致页面报错404(例:vue文件引入时,webpack只需要文件名),
//在vite.config.js配置resolve.extensions中添加对应后缀,vite默认有['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json']。
extensions: ['.vue', '.mjs', '.js', '.ts', '.jsx', '.tsx', '.json'],
alias: {
'@': path.resolve(__dirname, './src'),
'~styles': path.resolve(__dirname, './src/assets/styles'),
'~components': path.resolve(__dirname, './src/components'),
}
},
css: {
postcss: {
plugins: [
// 配置文档:https://www.npmjs.com/package/postcss-pxtorem
postcsspxtorem({
rootValue: 12.8, //根元素字体大小 16/1.25
propList: ['*'], // 匹配CSS中的属性,* 代表启用所有属性
unitPrecision: 5, // 转换成rem后保留的小数点位数
minPixelValue: 12, // 小于12px的样式不被替换成rem
exclude: ['node_modules'], //忽略一些文件,不进行转换,比如我想忽略 依赖的UI框架
// selectorBlackList: [], // 要忽略并保留为 px 的选择器
// replace : true, // 替换包含 rems 的规则,而不是添加回退
// mediaQuery : false, // 允许在媒体查询中转换 px
})
]
}
}
})
3.配置 (base.css main.js)
base.css
html {
font-size: .833333vw;
}
body {
font-size: 0.16rem;
}
main.js
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import Antd from 'ant-design-vue';
import 'ant-design-vue/dist/antd.css';
import "@/assets/css/base.css"; // 新增
createApp(App).use(router).use(Antd).mount('#app')
标签:vue,px,js,resolve,自动,vite,rem,import,css
From: https://www.cnblogs.com/huangtq/p/17758136.html