url-rewriting.test.ts — tailwindcss Source File
Architecture documentation for url-rewriting.test.ts, a typescript file in the tailwindcss codebase. 4 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR bb9cd5ae_8973_5a9b_a613_993c257e81e4["url-rewriting.test.ts"] 9ffd1dda_9675_c514_373d_0f4ab4648249["utils.ts"] bb9cd5ae_8973_5a9b_a613_993c257e81e4 --> 9ffd1dda_9675_c514_373d_0f4ab4648249 5e782ca7_5dd4_3b07_9000_78a9e1d90934["binary"] bb9cd5ae_8973_5a9b_a613_993c257e81e4 --> 5e782ca7_5dd4_3b07_9000_78a9e1d90934 f11e3be9_51f8_140b_68b0_f58ddd082595["test"] bb9cd5ae_8973_5a9b_a613_993c257e81e4 --> f11e3be9_51f8_140b_68b0_f58ddd082595 696bd648_5f24_1b59_8e8b_7a97a692869e["vitest"] bb9cd5ae_8973_5a9b_a613_993c257e81e4 --> 696bd648_5f24_1b59_8e8b_7a97a692869e style bb9cd5ae_8973_5a9b_a613_993c257e81e4 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import { describe } from 'vitest'
import { binary, css, html, svg, test, ts, txt } from '../utils'
const SIMPLE_IMAGE = `iVBORw0KGgoAAAANSUhEUgAAADAAAAAlAQAAAAAsYlcCAAAACklEQVR4AWMYBQABAwABRUEDtQAAAABJRU5ErkJggg==`
describe.each(['postcss', 'lightningcss'])('%s', (transformer) => {
test(
'can rewrite urls in production builds',
{
fs: {
'package.json': txt`
{
"type": "module",
"dependencies": {
"tailwindcss": "workspace:^"
},
"devDependencies": {
${transformer === 'lightningcss' ? `"lightningcss": "^1",` : ''}
"@tailwindcss/vite": "workspace:^",
"vite": "^7"
}
}
`,
'vite.config.ts': ts`
import tailwindcss from '@tailwindcss/vite'
import { defineConfig } from 'vite'
export default defineConfig({
plugins: [tailwindcss()],
build: {
assetsInlineLimit: 256,
cssMinify: false,
},
css: ${transformer === 'postcss' ? '{}' : "{ transformer: 'lightningcss' }"},
})
`,
'index.html': html`
<!doctype html>
<html>
<head>
<link rel="stylesheet" href="./src/app.css" />
</head>
<body>
<div id="app"></div>
</body>
</html>
`,
'src/app.css': css`
@reference 'tailwindcss';
@import './dir-1/bar.css';
@import './dir-1/dir-2/baz.css';
@import './dir-1/dir-2/vector.css';
`,
'src/dir-1/bar.css': css`
.test1 {
background-image: url('../../resources/image.png');
}
`,
'src/dir-1/dir-2/baz.css': css`
.test2 {
background-image: url('../../../resources/image.png');
}
`,
'src/dir-1/dir-2/vector.css': css`
@import './dir-3/vector.css';
.test3 {
background-image: url('../../../resources/vector.svg');
}
`,
'src/dir-1/dir-2/dir-3/vector.css': css`
.test4 {
background-image: url('./vector-2.svg');
}
`,
'resources/image.png': binary(SIMPLE_IMAGE),
'resources/vector.svg': svg`
<svg width="400" height="400" xmlns="http://www.w3.org/2000/svg">
<rect width="100%" height="100%" fill="red" />
<circle cx="200" cy="100" r="80" fill="green" />
<rect width="100%" height="100%" fill="red" />
<circle cx="200" cy="100" r="80" fill="green" />
</svg>
`,
'src/dir-1/dir-2/dir-3/vector-2.svg': svg`
<svg width="400" height="400" xmlns="http://www.w3.org/2000/svg">
<rect width="100%" height="100%" fill="blue" />
<circle cx="200" cy="100" r="80" fill="green" />
<rect width="100%" height="100%" fill="red" />
<circle cx="200" cy="100" r="80" fill="pink" />
</svg>
`,
},
},
async ({ fs, exec, expect }) => {
await exec('pnpm vite build')
let files = await fs.glob('dist/**/*.css')
expect(files).toHaveLength(1)
await fs.expectFileToContain(files[0][0], [SIMPLE_IMAGE])
let images = await fs.glob('dist/**/*.svg')
expect(images).toHaveLength(2)
await fs.expectFileToContain(files[0][0], [/\/assets\/vector-.*?\.svg/])
},
)
})
Domain
Source
Frequently Asked Questions
What does url-rewriting.test.ts do?
url-rewriting.test.ts is a source file in the tailwindcss codebase, written in typescript. It belongs to the OxideEngine domain.
What does url-rewriting.test.ts depend on?
url-rewriting.test.ts imports 4 module(s): binary, test, utils.ts, vitest.
Where is url-rewriting.test.ts in the architecture?
url-rewriting.test.ts is located at integrations/vite/url-rewriting.test.ts (domain: OxideEngine, directory: integrations/vite).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free