lightningcss-plugins.js — vite Source File
Architecture documentation for lightningcss-plugins.js, a javascript file in the vite codebase. 4 imports, 1 dependents.
Entity Profile
Dependency Diagram
graph LR c618defc_3b57_317d_60a6_8c85cb7f6060["lightningcss-plugins.js"] 51e96894_3556_ed5c_1ede_97d449867adf["node:path"] c618defc_3b57_317d_60a6_8c85cb7f6060 --> 51e96894_3556_ed5c_1ede_97d449867adf 54c37fea_4fe7_2693_71cb_1276b77f55f9["vite"] c618defc_3b57_317d_60a6_8c85cb7f6060 --> 54c37fea_4fe7_2693_71cb_1276b77f55f9 c688d896_f72c_d58c_87d1_55a366a1326a["lightningcss"] c618defc_3b57_317d_60a6_8c85cb7f6060 --> c688d896_f72c_d58c_87d1_55a366a1326a f768205a_533a_2be3_ec95_10f7f47d71ce["tinyglobby"] c618defc_3b57_317d_60a6_8c85cb7f6060 --> f768205a_533a_2be3_ec95_10f7f47d71ce 5c81aa76_dd42_9d68_2485_64577867dfb7["vite.config-lightningcss.js"] 5c81aa76_dd42_9d68_2485_64577867dfb7 --> c618defc_3b57_317d_60a6_8c85cb7f6060 style c618defc_3b57_317d_60a6_8c85cb7f6060 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import path from 'node:path'
import { normalizePath } from 'vite'
import { bundle as bundleWithLightningCss } from 'lightningcss'
import { globSync } from 'tinyglobby'
/**
* @param {string} filename
* @returns {import('lightningcss').StyleSheet}
*
* based on https://github.com/sardinedev/lightningcss-plugins/blob/9fb379486e402a4b4b8950d09e655b4cbf8a118b/packages/global-custom-queries/src/globalCustomQueries.ts#L9-L29
* https://github.com/sardinedev/lightningcss-plugins/blob/main/LICENSE
*/
function obtainLightningCssAst(filename) {
let ast
try {
bundleWithLightningCss({
filename,
visitor: {
StyleSheet(stylesheet) {
ast = stylesheet
},
},
})
return ast
} catch (error) {
throw Error(`failed to obtain lightning css AST`, { cause: error })
}
}
/** @returns {import('lightningcss').Visitor} */
export function testDirDep() {
/** @type {string[]} */
let currentStyleSheetSources
return {
StyleSheet(stylesheet) {
currentStyleSheetSources = stylesheet.sources
},
Rule: {
unknown: {
test(rule) {
const location = rule.loc
const from = currentStyleSheetSources[location.source_index]
const pattern = normalizePath(
path.resolve(path.dirname(from), './glob-dep/**/*.css'),
)
// FIXME: there's no way to add a dependency
const files = globSync(pattern, {
expandDirectories: false,
absolute: true,
})
return files.flatMap((file) => obtainLightningCssAst(file).rules)
},
},
},
}
}
/** @returns {import('lightningcss').Visitor} */
export function testSourceInput() {
/** @type {string[]} */
// ... (151 more lines)
Domain
Subdomains
Dependencies
- lightningcss
- node:path
- tinyglobby
- vite
Imported By
Source
Frequently Asked Questions
What does lightningcss-plugins.js do?
lightningcss-plugins.js is a source file in the vite codebase, written in javascript. It belongs to the ViteCore domain, BuildPipeline subdomain.
What functions are defined in lightningcss-plugins.js?
lightningcss-plugins.js defines 5 function(s): nestedLikePlugin, obtainLightningCssAst, testDirDep, testInjectUrl, testSourceInput.
What does lightningcss-plugins.js depend on?
lightningcss-plugins.js imports 4 module(s): lightningcss, node:path, tinyglobby, vite.
What files import lightningcss-plugins.js?
lightningcss-plugins.js is imported by 1 file(s): vite.config-lightningcss.js.
Where is lightningcss-plugins.js in the architecture?
lightningcss-plugins.js is located at playground/css/lightningcss-plugins.js (domain: ViteCore, subdomain: BuildPipeline, directory: playground/css).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free