GitOfZGT / vite-plugin-theme-preprocessor

css theme preprocessor plugin for vite
MIT License
161 stars 15 forks source link

safari 不支持 Negative lookahead assertion 会报错 #54

Open Hucy opened 1 year ago

Hucy commented 1 year ago

https://github.com/GitOfZGT/vite-plugin-theme-preprocessor/blob/d9b15aa92f63a105393f1fbb3ffb45d9e66fca41/src/browser-utils.js#L72

Hucy commented 1 year ago

提交了才发现 😂

Hucy commented 1 year ago

下边这个可以处理基本上所有情况,就是 base 是 ‘/’ 是要做下判断

// 相对路径
console.log(".//xxx///x/x.css".replace(/([^:])\/+(?=\/)/g, "$1"))
console.log("./xxx///x/x.css".replace(/([^:])\/+(?=\/)/g, "$1"))

// 绝对路径
console.log("/xxx///x/x.css".replace(/([^:])\/+(?=\/)/g, "$1"))
console.log("xx//xxx///x/x.css".replace(/([^:])\/+(?=\/)/g, "$1"))

// 这种以/开头的和自适应地址冲突。当 base 为 / 时拼接了 / 会出现这个问题需要处理下
console.log("//xxx///x/x.css".replace(/([^:])\/+(?=\/)/g, "$1"))
console.log("///xxx///x/x.css".replace(/([^:])\/+(?=\/)/g, "$1"))

// 地址
console.log("http://xxx.com///x/x.css".replace(/([^:])\/+(?=\/)/g, "$1"))
console.log("http:///xxx.com///x/x.css".replace(/([^:])\/+(?=\/)/g, "$1"))

// https 自适应地址
console.log("//xxx.com///x/x.css".replace(/([^:])\/+(?=\/)/g, "$1"))
console.log("///xxx.com///x/x.css".replace(/([^:])\/+(?=\/)/g, "$1"))