kidArtExpo/postcss.config.js

48 lines
1.5 KiB
JavaScript
Raw Permalink Normal View History

2024-08-05 11:36:27 +00:00
import autoprefixer from 'autoprefixer';
import postcssResponsiveType from 'postcss-responsive-type';
import pxToViewport from 'postcss-px-to-viewport';
2024-08-06 09:07:36 +00:00
// 使用新的PostCSS 8 API创建自定义的px-to-viewport插件
const customPxToViewportPlugin = (options) => {
return {
postcssPlugin: 'custom-px-to-viewport',
Once(root, { result }) {
const file = result.opts.from;
2024-08-06 11:32:06 +00:00
let viewportWidth = options.defaultViewportWidth || 375; // 设置默认值
2024-08-06 09:07:36 +00:00
if (file?.includes('vant')) {
viewportWidth = 375;
2024-08-06 11:32:06 +00:00
}else{
2024-08-06 09:07:36 +00:00
viewportWidth = 1920;
}
2024-08-06 11:32:06 +00:00
2024-08-06 09:07:36 +00:00
const pxToViewportInstance = pxToViewport({
...options,
viewportWidth: viewportWidth,
});
if (file) {
pxToViewportInstance(root, result);
}
}
};
};
2024-08-05 11:36:27 +00:00
2024-08-06 09:07:36 +00:00
// 定义postcss插件名称
customPxToViewportPlugin.postcss = true;
2024-08-05 11:36:27 +00:00
export default {
plugins: [
autoprefixer(), // 自动添加浏览器前缀
postcssResponsiveType(), // 自动调整文本大小
2024-08-06 09:07:36 +00:00
customPxToViewportPlugin({
2024-08-06 11:32:06 +00:00
defaultViewportWidth:1920,
unitPrecision: 5, // 保留的小数位数
2024-08-06 09:07:36 +00:00
selectorBlackList: [/^\.van/], // 以 .van 开头的类名不转换
2024-08-05 11:36:27 +00:00
minPixelValue: 1, // 小于或等于 1px 不转换
2024-08-07 03:51:02 +00:00
viewportUnit: "vw", // 转换后的单位
fontViewportUnit: "vw", // 字体单位
2024-08-06 09:07:36 +00:00
unitToConvert: "px" // 需要转换的单位
2024-08-05 11:36:27 +00:00
}),
],
};