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

Function compileCSSPreprocessors

packages/vite/src/node/plugins/css.ts:1359–1414  ·  view source on GitHub ↗
(
  environment: PartialEnvironment,
  id: string,
  lang: PreprocessLang,
  code: string,
  workerController: PreprocessorWorkerController,
)

Source from the content-addressed store, hash-verified

1357}
1358
1359async function compileCSSPreprocessors(
1360 environment: PartialEnvironment,
1361 id: string,
1362 lang: PreprocessLang,
1363 code: string,
1364 workerController: PreprocessorWorkerController,
1365): Promise<{
1366 code: string
1367 map?: ExistingRawSourceMap | { mappings: '' }
1368 deps?: Set<string>
1369}> {
1370 const { config } = environment
1371 const { preprocessorOptions, devSourcemap } = config.css
1372 const atImportResolvers = getAtImportResolvers(
1373 environment.getTopLevelConfig(),
1374 )
1375 const opts = {
1376 ...((preprocessorOptions && preprocessorOptions[lang]) || {}),
1377 // important: set this for relative import resolving
1378 filename: cleanUrl(id),
1379 enableSourcemap: devSourcemap ?? false,
1380 }
1381
1382 const preProcessor = workerController[lang]
1383 const preprocessResult = await preProcessor(
1384 environment,
1385 code,
1386 config.root,
1387 opts,
1388 atImportResolvers,
1389 )
1390 if (preprocessResult.error) {
1391 throw preprocessResult.error
1392 }
1393
1394 let deps: Set<string> | undefined
1395 if (preprocessResult.deps.length > 0) {
1396 const normalizedFilename = normalizePath(opts.filename)
1397 // sometimes sass registers the file itself as a dep
1398 deps = new Set(
1399 [...preprocessResult.deps].filter(
1400 (dep) => normalizePath(dep) !== normalizedFilename,
1401 ),
1402 )
1403 }
1404
1405 return {
1406 code: preprocessResult.code,
1407 map: combineSourcemapsIfExists(
1408 opts.filename,
1409 preprocessResult.map,
1410 preprocessResult.additionalMap,
1411 ),
1412 deps,
1413 }
1414}
1415
1416const configToAtImportResolvers = new WeakMap<

Callers 3

compileCSSFunction · 0.85
loadFunction · 0.85
readFunction · 0.85

Calls 5

cleanUrlFunction · 0.90
normalizePathFunction · 0.90
getAtImportResolversFunction · 0.85
getTopLevelConfigMethod · 0.80

Tested by

no test coverage detected