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

Function createCSSResolvers

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

Source from the content-addressed store, hash-verified

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

Callers 2

getSassResolverFunction · 0.90
getAtImportResolversFunction · 0.85

Calls

no outgoing calls

Tested by 1

getSassResolverFunction · 0.72