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

Function createCSSResolvers

packages/vite/src/node/plugins/css.ts:1295–1351  ·  view source on GitHub ↗
(
  config: ResolvedConfig,
)

Source from the content-addressed store, hash-verified

1293}
1294
1295export function createCSSResolvers(
1296 config: ResolvedConfig,
1297): CSSAtImportResolvers {
1298 let cssResolve: ResolveIdFn | undefined
1299 let sassResolve: ResolveIdFn | undefined
1300 let lessResolve: ResolveIdFn | undefined
1301 return {
1302 get css() {
1303 return (cssResolve ??= createBackCompatIdResolver(config, {
1304 extensions: ['.css'],
1305 mainFields: ['style'],
1306 conditions: ['style', DEV_PROD_CONDITION],
1307 tryIndex: false,
1308 preferRelative: true,
1309 }))
1310 },
1311
1312 get sass() {
1313 if (!sassResolve) {
1314 const resolver = createBackCompatIdResolver(config, {
1315 extensions: ['.scss', '.sass', '.css'],
1316 mainFields: ['sass', 'style'],
1317 conditions: ['sass', 'style', DEV_PROD_CONDITION],
1318 tryIndex: true,
1319 tryPrefix: '_',
1320 preferRelative: true,
1321 skipMainField: true,
1322 })
1323 sassResolve = async (...args) => {
1324 // the modern API calls `canonicalize` with resolved file URLs
1325 // for relative URLs before raw specifiers
1326 if (args[1].startsWith('file://')) {
1327 args[1] = fileURLToPath(args[1], {
1328 windows:
1329 // file:///foo cannot be converted to path with windows mode
1330 isWindows && !fileURLWithWindowsDriveRE.test(args[1])
1331 ? false
1332 : undefined,
1333 })
1334 }
1335 return resolver(...args)
1336 }
1337 }
1338 return sassResolve
1339 },
1340
1341 get less() {
1342 return (lessResolve ??= createBackCompatIdResolver(config, {
1343 extensions: ['.less', '.css'],
1344 mainFields: ['less', 'style'],
1345 conditions: ['less', 'style', DEV_PROD_CONDITION],
1346 tryIndex: false,
1347 preferRelative: true,
1348 }))
1349 },
1350 }
1351}
1352

Callers 2

getSassResolverFunction · 0.90
getAtImportResolversFunction · 0.85

Calls

no outgoing calls

Tested by 1

getSassResolverFunction · 0.72