Skip to content

Commit fc0d9e3

Browse files
authoredNov 28, 2022
fix(importGlob): warn on default import css (#11103)
1 parent 3e0cd3d commit fc0d9e3

File tree

6 files changed

+56
-5
lines changed

6 files changed

+56
-5
lines changed
 
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
.a {
2+
color: red;
3+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
.b {
2+
color: red;
3+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
.b {
2+
color: red;
3+
}

‎packages/vite/src/node/__tests__/plugins/importGlob/fixture.test.ts

+40
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { fileURLToPath } from 'node:url'
44
import { describe, expect, it } from 'vitest'
55
import { transformGlobImport } from '../../../plugins/importMetaGlob'
66
import { transformWithEsbuild } from '../../../plugins/esbuild'
7+
import type { Logger } from '../../../logger'
78
import { createLogger } from '../../../logger'
89

910
const __dirname = resolve(fileURLToPath(import.meta.url), '..')
@@ -72,4 +73,43 @@ describe('fixture', async () => {
7273
)?.s.toString()
7374
).toMatchSnapshot()
7475
})
76+
77+
it('warn when glob css without ?inline', async () => {
78+
const logs: string[] = []
79+
const logger = {
80+
warn(msg: string) {
81+
logs.push(msg)
82+
}
83+
} as Logger
84+
85+
await transformGlobImport(
86+
"import.meta.glob('./fixture-c/*.css', { query: '?inline' })",
87+
fileURLToPath(import.meta.url),
88+
root,
89+
resolveId,
90+
logger
91+
)
92+
expect(logs).toHaveLength(0)
93+
94+
await transformGlobImport(
95+
"import.meta.glob('./fixture-c/*.module.css')",
96+
fileURLToPath(import.meta.url),
97+
root,
98+
resolveId,
99+
logger
100+
)
101+
expect(logs).toHaveLength(0)
102+
103+
await transformGlobImport(
104+
"import.meta.glob('./fixture-c/*.css')",
105+
fileURLToPath(import.meta.url),
106+
root,
107+
resolveId,
108+
logger
109+
)
110+
expect(logs).toHaveLength(1)
111+
expect(logs[0]).to.include(
112+
'Globbing CSS files without the ?inline query is deprecated'
113+
)
114+
})
75115
})

‎packages/vite/src/node/plugins/importAnalysis.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -439,9 +439,9 @@ export function importAnalysisPlugin(config: ResolvedConfig): Plugin {
439439
if (
440440
!isDynamicImport &&
441441
specifier &&
442+
!specifier.includes('?') && // ignore custom queries
442443
isCSSRequest(specifier) &&
443-
!isModuleCSSRequest(specifier) &&
444-
!specifier.includes('?') // ignore custom queries
444+
!isModuleCSSRequest(specifier)
445445
) {
446446
const sourceExp = source.slice(expStart, start)
447447
if (

‎packages/vite/src/node/plugins/importMetaGlob.ts

+5-3
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ import {
3030
transformStableResult
3131
} from '../utils'
3232
import type { Logger } from '../logger'
33-
import { isCSSRequest } from './css'
33+
import { isCSSRequest, isModuleCSSRequest } from './css'
3434

3535
const { isMatch, scan } = micromatch
3636

@@ -380,8 +380,10 @@ export async function transformGlobImport(
380380
if (query && !query.startsWith('?')) query = `?${query}`
381381

382382
if (
383-
!query.match(/(?:\?|&)inline\b/) &&
384-
files.some((file) => isCSSRequest(file))
383+
!query && // ignore custom queries
384+
files.some(
385+
(file) => isCSSRequest(file) && !isModuleCSSRequest(file)
386+
)
385387
) {
386388
logger.warn(
387389
`\n` +

0 commit comments

Comments
 (0)
Please sign in to comment.