vuevite-style-pxtovm
Version:
vue vite 项目行内样式px转vw的js库
2 lines (1 loc) • 809 B
JavaScript
(function(e,r){typeof exports=="object"&&typeof module<"u"?module.exports=r():typeof define=="function"&&define.amd?define(r):(e=typeof globalThis<"u"?globalThis:e||self,e.stylePxToVw=r())})(this,function(){"use strict";let e={viewportWidth:750,unitPrecision:2,viewportUnit:"vw",minPixelValue:1};function r(o,t){var n=Math.pow(10,t+1),i=Math.floor(o*n);return Math.round(i/10)*10/n}function f(o,t,n,i){return function(s,p){if(p){var a=parseFloat(p);if(!(a<=t))return r(a/o*100,n)+i}}}const u=/<template>([\s\S]+)<\/template>/gi,l=/(\d+)px/gi;return o=>(Object.assign(e,o),{name:"stylePxToVw",async transform(t,n){if(/.vue$/.test(n)){let i="";if(u.test(t)&&(i=t.match(u)[0]),l.test(i)){let s=i.replace(l,f(e.viewportWidth,e.minPixelValue,e.unitPrecision,e.viewportUnit));t=t.replace(i,s)}}return{code:t}}})});