(
chunkCSS: string,
cssAssetName: string,
originalFileName?: string,
)
| 704 | |
| 705 | // resolve asset URL placeholders to their built file URLs |
| 706 | const resolveAssetUrlsInCss = ( |
| 707 | chunkCSS: string, |
| 708 | cssAssetName: string, |
| 709 | originalFileName?: string, |
| 710 | ) => { |
| 711 | const encodedPublicUrls = encodePublicUrlsInCSS(config) |
| 712 | |
| 713 | const relative = config.base === './' || config.base === '' |
| 714 | const cssAssetDirname = |
| 715 | encodedPublicUrls || relative |
| 716 | ? slash(getCssAssetDirname(cssAssetName, originalFileName)) |
| 717 | : undefined |
| 718 | |
| 719 | const toRelative = (filename: string) => { |
| 720 | // relative base + extracted CSS |
| 721 | const relativePath = normalizePath( |
| 722 | path.relative(cssAssetDirname!, filename), |
| 723 | ) |
| 724 | return relativePath[0] === '.' |
| 725 | ? relativePath |
| 726 | : './' + relativePath |
| 727 | } |
| 728 | |
| 729 | // replace asset url references with resolved url. |
| 730 | chunkCSS = chunkCSS.replace( |
| 731 | assetUrlRE, |
| 732 | (_, fileHash, postfix = '') => { |
| 733 | const filename = this.getFileName(fileHash) + postfix |
| 734 | chunk.viteMetadata!.importedAssets.add(cleanUrl(filename)) |
| 735 | return encodeURIPath( |
| 736 | toOutputFilePathInCss( |
| 737 | filename, |
| 738 | 'asset', |
| 739 | cssAssetName, |
| 740 | 'css', |
| 741 | config, |
| 742 | toRelative, |
| 743 | ), |
| 744 | ) |
| 745 | }, |
| 746 | ) |
| 747 | // resolve public URL from CSS paths |
| 748 | if (encodedPublicUrls) { |
| 749 | const relativePathToPublicFromCSS = normalizePath( |
| 750 | path.relative(cssAssetDirname!, ''), |
| 751 | ) |
| 752 | chunkCSS = chunkCSS.replace(publicAssetUrlRE, (_, hash) => { |
| 753 | const publicUrl = publicAssetUrlMap.get(hash)!.slice(1) |
| 754 | return encodeURIPath( |
| 755 | toOutputFilePathInCss( |
| 756 | publicUrl, |
| 757 | 'public', |
| 758 | cssAssetName, |
| 759 | 'css', |
| 760 | config, |
| 761 | () => `${relativePathToPublicFromCSS}/${publicUrl}`, |
| 762 | ), |
| 763 | ) |
no test coverage detected