templates/vitekit/__/vite-frontend-starter-main/vite/html-transform-base.js
2026-04-12 21:03:18 +03:00

35 lines
987 B
JavaScript

import { processArg } from './app.js';
function htmlTransformBase() {
return {
name: 'html-transform-base',
transformIndexHtml: (html) => {
if (!html || !html.length) {
return html;
}
const { base } = processArg;
if (!base || base === '/' || base.startsWith('.')) {
return html;
}
const baseFormatted = `/${base.trim().replace(/^\/|\/$/g, '')}`;
const modifiedHtml = html.replace(/(href|src)=["']([^"']+)["']/gi, (match, attr, url) => {
if (!url || !url.length || url.startsWith('./') || url.startsWith(baseFormatted) || url.startsWith('http') || url.startsWith('www') || url.startsWith('__VITE_')) {
return match;
}
const urlFormatted = url === '/' ? '' : `${url.trim().replace(/^\/|\/$/g, '')}`;
return `${attr}="${baseFormatted}${urlFormatted.length ? `/${urlFormatted}` : ''}"`;
});
return modifiedHtml;
},
};
}
export default htmlTransformBase;