vite.config.js — vite Source File
Architecture documentation for vite.config.js, a javascript file in the vite codebase. 4 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 27519243_bf49_54ed_73a9_d09ee8df1b6b["vite.config.js"] a09ff191_7c83_bdcd_30f1_b4e129910bf6["promises"] 27519243_bf49_54ed_73a9_d09ee8df1b6b --> a09ff191_7c83_bdcd_30f1_b4e129910bf6 51e96894_3556_ed5c_1ede_97d449867adf["node:path"] 27519243_bf49_54ed_73a9_d09ee8df1b6b --> 51e96894_3556_ed5c_1ede_97d449867adf 9e678916_202a_edec_9e08_b4e120d4b153["node:crypto"] 27519243_bf49_54ed_73a9_d09ee8df1b6b --> 9e678916_202a_edec_9e08_b4e120d4b153 54c37fea_4fe7_2693_71cb_1276b77f55f9["vite"] 27519243_bf49_54ed_73a9_d09ee8df1b6b --> 54c37fea_4fe7_2693_71cb_1276b77f55f9 style 27519243_bf49_54ed_73a9_d09ee8df1b6b fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import fs from 'node:fs/promises'
import path from 'node:path'
import crypto from 'node:crypto'
import { defineConfig } from 'vite'
const noncePlaceholder = '#$NONCE$#'
const createNonce = () => crypto.randomBytes(16).toString('base64')
/**
* @param {import('node:http').ServerResponse} res
* @param {string} nonce
*/
const setNonceHeader = (res, nonce) => {
res.setHeader(
'Content-Security-Policy',
`default-src 'nonce-${nonce}'; connect-src 'self'`,
)
}
/**
* @param {string} file
* @param {(input: string, originalUrl: string) => Promise<string>} transform
* @returns {import('vite').Connect.NextHandleFunction}
*/
const createMiddleware = (file, transform) => async (req, res) => {
const nonce = createNonce()
setNonceHeader(res, nonce)
const content = await fs.readFile(
path.join(import.meta.dirname, file),
'utf-8',
)
const transformedContent = await transform(content, req.originalUrl)
res.setHeader('Content-Type', 'text/html')
res.end(transformedContent.replaceAll(noncePlaceholder, nonce))
}
export default defineConfig({
plugins: [
{
name: 'nonce-inject',
config() {
return {
appType: 'custom',
html: {
cspNonce: noncePlaceholder,
},
}
},
configureServer({ transformIndexHtml, middlewares }) {
return () => {
middlewares.use(
createMiddleware('./index.html', (input, originalUrl) =>
transformIndexHtml(originalUrl, input),
),
)
}
},
configurePreviewServer({ middlewares }) {
return () => {
middlewares.use(
createMiddleware('./dist/index.html', async (input) => input),
)
}
},
},
],
})
Domain
Subdomains
Dependencies
- node:crypto
- node:path
- promises
- vite
Source
Frequently Asked Questions
What does vite.config.js do?
vite.config.js is a source file in the vite codebase, written in javascript. It belongs to the ViteCore domain, ConfigEngine subdomain.
What functions are defined in vite.config.js?
vite.config.js defines 3 function(s): createMiddleware, createNonce, setNonceHeader.
What does vite.config.js depend on?
vite.config.js imports 4 module(s): node:crypto, node:path, promises, vite.
Where is vite.config.js in the architecture?
vite.config.js is located at playground/csp/vite.config.js (domain: ViteCore, subdomain: ConfigEngine, directory: playground/csp).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free