Add test for source(none) in Vite
This commit is contained in:
parent
93b629a6a4
commit
938b3c5f94
1 changed files with 86 additions and 0 deletions
|
|
@ -427,6 +427,92 @@ for (let transformer of ['postcss', 'lightningcss']) {
|
|||
})
|
||||
},
|
||||
)
|
||||
|
||||
test(
|
||||
`source(none) disables looking at the module graph`,
|
||||
{
|
||||
fs: {
|
||||
'package.json': json`{}`,
|
||||
'pnpm-workspace.yaml': yaml`
|
||||
#
|
||||
packages:
|
||||
- project-a
|
||||
`,
|
||||
'project-a/package.json': txt`
|
||||
{
|
||||
"type": "module",
|
||||
"dependencies": {
|
||||
"@tailwindcss/vite": "workspace:^",
|
||||
"tailwindcss": "workspace:^"
|
||||
},
|
||||
"devDependencies": {
|
||||
${transformer === 'lightningcss' ? `"lightningcss": "^1.26.0",` : ''}
|
||||
"vite": "^5.3.5"
|
||||
}
|
||||
}
|
||||
`,
|
||||
'project-a/vite.config.ts': ts`
|
||||
import tailwindcss from '@tailwindcss/vite'
|
||||
import { defineConfig } from 'vite'
|
||||
|
||||
export default defineConfig({
|
||||
css: ${transformer === 'postcss' ? '{}' : "{ transformer: 'lightningcss' }"},
|
||||
build: { cssMinify: false },
|
||||
plugins: [tailwindcss()],
|
||||
})
|
||||
`,
|
||||
'project-a/index.html': html`
|
||||
<head>
|
||||
<link rel="stylesheet" href="./src/index.css" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="underline m-2">Hello, world!</div>
|
||||
</body>
|
||||
`,
|
||||
'project-a/src/index.css': css`
|
||||
@import 'tailwindcss' source(none);
|
||||
@source '../../project-b/src/**/*.html';
|
||||
`,
|
||||
'project-b/src/index.html': html`
|
||||
<div class="flex" />
|
||||
`,
|
||||
'project-b/src/index.js': js`
|
||||
const className = "content-['project-b/src/index.js']"
|
||||
module.exports = { className }
|
||||
`,
|
||||
},
|
||||
},
|
||||
async ({ root, fs, exec }) => {
|
||||
console.log(await exec('pnpm vite build', { cwd: path.join(root, 'project-a') }))
|
||||
|
||||
let files = await fs.glob('project-a/dist/**/*.css')
|
||||
expect(files).toHaveLength(1)
|
||||
let [filename] = files[0]
|
||||
|
||||
// `underline` and `m-2` are only present from files in the module graph
|
||||
// which we've explicitly disabled with source(none) so they should not
|
||||
// be present
|
||||
await fs.expectFileNotToContain(filename, [
|
||||
//
|
||||
candidate`underline`,
|
||||
candidate`m-2`,
|
||||
])
|
||||
|
||||
// The files from `project-b` should be included because there is an
|
||||
// explicit `@source` directive for it
|
||||
await fs.expectFileToContain(filename, [
|
||||
//
|
||||
candidate`flex`,
|
||||
])
|
||||
|
||||
// The explicit source directive only covers HTML files, so the JS file
|
||||
// should not be included
|
||||
await fs.expectFileNotToContain(filename, [
|
||||
//
|
||||
candidate`content-['project-b/src/index.js']`,
|
||||
])
|
||||
},
|
||||
)
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue