const EPS = 1e-4 const BASE_DEVICE_WIDTH = 750 let isIOS = false let deviceWidth = 0 let deviceDPR = 0 export function upx2px (number, newDeviceWidth) { number = Number(number) if (number === 0) { return 0 } let result = (number / BASE_DEVICE_WIDTH) * (newDeviceWidth || deviceWidth) if (result < 0) { result = -result } result = Math.floor(result + EPS) if (result === 0) { if (deviceDPR === 1 || !isIOS) { result = 1 } else { result = 0.5 } } return number < 0 ? -result : result } export default function initUpx2px (nvue) { const env = nvue.config.env deviceDPR = env.scale deviceWidth = Math.ceil(env.deviceWidth / deviceDPR) isIOS = env.platform === 'iOS' }