MCPcopy
hub / github.com/vitejs/vite / resolveAssetUrlsInCss

Function resolveAssetUrlsInCss

packages/vite/src/node/plugins/css.ts:706–767  ·  view source on GitHub ↗
(
              chunkCSS: string,
              cssAssetName: string,
              originalFileName?: string,
            )

Source from the content-addressed store, hash-verified

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 )

Callers 1

renderChunkFunction · 0.85

Calls 9

slashFunction · 0.90
cleanUrlFunction · 0.90
encodeURIPathFunction · 0.90
normalizePathFunction · 0.90
encodePublicUrlsInCSSFunction · 0.85
getCssAssetDirnameFunction · 0.85
getFileNameMethod · 0.80
addMethod · 0.80
getMethod · 0.45

Tested by

no test coverage detected