编写postcss插件,全局css文件px转vw

跟目录下创建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方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值