跟目录下创建plugins文件夹,创建postcss-px-to-viewport.ts文件
文件内代码:
- // postcss 的插件 vite内置了postCss插件 无需安装
- import { Plugin } from 'postcss';
-
- interface Options {
- viewportWidth: number
- }
-
- const Options = {
- viewportWidth: 375, // UI设计稿给多少写多少,默认375
- }
- export const PostCsspxToViewport = (options:Options):Plugin => {
- const opt = Object.assign({}, Options, options)
- return {
- postcssPlugin: 'postcss-px-to-viewport',
- // 钩子函数
- Declaration(node) {
- if (node.value.includes('px')) {
- const num = parseFloat(node.value);
- node.value = `${((num / opt.viewportWidth) * 100).toFixed(2)}vw`
- }
- }
- }
- }
-
tsconfig.node.json文件增加plugins引入
- {
- "compilerOptions": {
- "composite": true,
- "skipLibCheck": true,
- "module": "es2022",
- "moduleResolution": "bundler",
- "allowSyntheticDefaultImports": true,
- "noImplicitAny": false// 允许隐式的any
- },
- "include": [
- "vite.config.ts",
- "plugins/**/*.ts",
- "src/**/*.ts",
- ]
- }
vite. config.ts文件中引入PostCsspxToViewport方法