Open Hucy opened 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"))
https://github.com/GitOfZGT/vite-plugin-theme-preprocessor/blob/d9b15aa92f63a105393f1fbb3ffb45d9e66fca41/src/browser-utils.js#L72