cssPlugin() — vite Function Reference
Architecture documentation for the cssPlugin() function in css.ts from the vite codebase.
Entity Profile
Dependency Diagram
graph TD 157cb972_609e_022e_1ec5_3ed6f7e4f45c["cssPlugin()"] c3eb47df_971b_0616_6c9f_29b3ded72224["css.ts"] 157cb972_609e_022e_1ec5_3ed6f7e4f45c -->|defined in| c3eb47df_971b_0616_6c9f_29b3ded72224 5264d5e7_3105_8e4d_45a1_d7d3af9915a8["createCssPluginTransform()"] 5264d5e7_3105_8e4d_45a1_d7d3af9915a8 -->|calls| 157cb972_609e_022e_1ec5_3ed6f7e4f45c b1b40b5b_3e43_2197_dea0_d36389d312a1["resolvePlugins()"] b1b40b5b_3e43_2197_dea0_d36389d312a1 -->|calls| 157cb972_609e_022e_1ec5_3ed6f7e4f45c 7ee86c21_2650_c869_2f5d_720909757e00["createBackCompatIdResolver()"] 157cb972_609e_022e_1ec5_3ed6f7e4f45c -->|calls| 7ee86c21_2650_c869_2f5d_720909757e00 cef0333b_923a_6cea_cbaf_2d72f8dd2e53["resolvePostcssConfig()"] 157cb972_609e_022e_1ec5_3ed6f7e4f45c -->|calls| cef0333b_923a_6cea_cbaf_2d72f8dd2e53 bbded320_f805_2b6e_3109_088d194024a2["build()"] 157cb972_609e_022e_1ec5_3ed6f7e4f45c -->|calls| bbded320_f805_2b6e_3109_088d194024a2 1da538be_8fb3_3d85_2856_d9bfecfb04f5["createPreprocessorWorkerController()"] 157cb972_609e_022e_1ec5_3ed6f7e4f45c -->|calls| 1da538be_8fb3_3d85_2856_d9bfecfb04f5 1422383b_13a1_fdfb_4f71_7158fc0fe60c["normalizeMaxWorkers()"] 157cb972_609e_022e_1ec5_3ed6f7e4f45c -->|calls| 1422383b_13a1_fdfb_4f71_7158fc0fe60c 10e7daed_8b83_8119_ca52_eddfd906f7d4["isModuleCSSRequest()"] 157cb972_609e_022e_1ec5_3ed6f7e4f45c -->|calls| 10e7daed_8b83_8119_ca52_eddfd906f7d4 1948f092_e5a5_076b_2f59_79ef22dec191["injectQuery()"] 157cb972_609e_022e_1ec5_3ed6f7e4f45c -->|calls| 1948f092_e5a5_076b_2f59_79ef22dec191 3e98c2d6_886c_9673_6385_bb73ddab86cc["removeUrlQuery()"] 157cb972_609e_022e_1ec5_3ed6f7e4f45c -->|calls| 3e98c2d6_886c_9673_6385_bb73ddab86cc be351481_35b7_f392_a229_ac14e1fa7efb["checkPublicFile()"] 157cb972_609e_022e_1ec5_3ed6f7e4f45c -->|calls| be351481_35b7_f392_a229_ac14e1fa7efb 7d773362_124a_60f9_277f_068d885568d3["encodePublicUrlsInCSS()"] 157cb972_609e_022e_1ec5_3ed6f7e4f45c -->|calls| 7d773362_124a_60f9_277f_068d885568d3 0d5e9fd7_88bb_e8eb_37e0_dee52752ef34["publicFileToBuiltUrl()"] 157cb972_609e_022e_1ec5_3ed6f7e4f45c -->|calls| 0d5e9fd7_88bb_e8eb_37e0_dee52752ef34 style 157cb972_609e_022e_1ec5_3ed6f7e4f45c fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/vite/src/node/plugins/css.ts lines 296–453
export function cssPlugin(config: ResolvedConfig): Plugin {
const isBuild = config.command === 'build'
let moduleCache: Map<string, Record<string, string>>
const idResolver = createBackCompatIdResolver(config, {
preferRelative: true,
tryIndex: false,
extensions: [],
})
let preprocessorWorkerController: PreprocessorWorkerController | undefined
// warm up cache for resolved postcss config
if (config.css.transformer !== 'lightningcss') {
resolvePostcssConfig(config).catch(() => {
/* will be handled later */
})
}
return {
name: 'vite:css',
buildStart() {
// Ensure a new cache for every build (i.e. rebuilding in watch mode)
moduleCache = new Map<string, Record<string, string>>()
cssModulesCache.set(config, moduleCache)
removedPureCssFilesCache.set(config, new Map<string, RenderedChunk>())
preprocessorWorkerController = createPreprocessorWorkerController(
normalizeMaxWorkers(config.css.preprocessorMaxWorkers),
)
preprocessorWorkerControllerCache.set(
config,
preprocessorWorkerController,
)
},
buildEnd() {
preprocessorWorkerController?.close()
},
load: {
filter: {
id: CSS_LANGS_RE,
},
async handler(id) {
if (urlRE.test(id)) {
if (isModuleCSSRequest(id)) {
throw new Error(
`?url is not supported with CSS modules. (tried to import ${JSON.stringify(
id,
)})`,
)
}
// *.css?url
// in dev, it's handled by assets plugin.
if (isBuild) {
id = injectQuery(removeUrlQuery(id), 'transform-only')
return (
`import ${JSON.stringify(id)};` +
`export default "__VITE_CSS_URL__${Buffer.from(id).toString(
'hex',
)}__"`
)
}
}
},
},
transform: {
filter: {
id: {
include: CSS_LANGS_RE,
exclude: [commonjsProxyRE, SPECIAL_QUERY_RE],
},
},
async handler(raw, id) {
const { environment } = this
const resolveUrl = (url: string, importer?: string) =>
idResolver(environment, url, importer)
Domain
Subdomains
Defined In
Calls
- addWatchFile()
- addWatchFile()
- build()
- buildStart()
- checkPublicFile()
- cleanUrl()
- close()
- compileCSS()
- createBackCompatIdResolver()
- createPreprocessorWorkerController()
- encodePublicUrlsInCSS()
- fileToUrl()
- getModulesByFile()
- injectQuery()
- isModuleCSSRequest()
- joinUrlSegments()
- normalizeMaxWorkers()
- publicFileToBuiltUrl()
- removeUrlQuery()
- resolvePostcssConfig()
- resolveUrl()
- resolveUserExternal()
Source
Frequently Asked Questions
What does cssPlugin() do?
cssPlugin() is a function in the vite codebase, defined in packages/vite/src/node/plugins/css.ts.
Where is cssPlugin() defined?
cssPlugin() is defined in packages/vite/src/node/plugins/css.ts at line 296.
What does cssPlugin() call?
cssPlugin() calls 22 function(s): addWatchFile, addWatchFile, build, buildStart, checkPublicFile, cleanUrl, close, compileCSS, and 14 more.
What calls cssPlugin()?
cssPlugin() is called by 2 function(s): createCssPluginTransform, resolvePlugins.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free