Skip to content

Commit 21ec1ce

Browse files
authoredSep 19, 2024··
fix: use config.consumer instead of options?.ssr / config.build.ssr (#18140)
1 parent 7722c06 commit 21ec1ce

File tree

5 files changed

+18
-13
lines changed

5 files changed

+18
-13
lines changed
 

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

+3-3
Original file line numberDiff line numberDiff line change
@@ -452,7 +452,7 @@ export function cssPostPlugin(config: ResolvedConfig): Plugin {
452452
codeSplitEmitQueue = createSerialPromiseQueue()
453453
},
454454

455-
async transform(css, id, options) {
455+
async transform(css, id) {
456456
if (
457457
!isCSSRequest(id) ||
458458
commonjsProxyRE.test(id) ||
@@ -510,7 +510,7 @@ export function cssPostPlugin(config: ResolvedConfig): Plugin {
510510
return null
511511
}
512512
// server only
513-
if (options?.ssr) {
513+
if (this.environment.config.consumer !== 'client') {
514514
return modulesCode || `export default ${JSON.stringify(css)}`
515515
}
516516
if (inlined) {
@@ -783,7 +783,7 @@ export function cssPostPlugin(config: ResolvedConfig): Plugin {
783783
})
784784
generatedAssets.set(referenceId, { originalFileName, isEntry })
785785
chunk.viteMetadata!.importedCss.add(this.getFileName(referenceId))
786-
} else if (!config.build.ssr) {
786+
} else if (this.environment.config.consumer === 'client') {
787787
// legacy build and inline css
788788

789789
// Entry chunk CSS will be collected into `chunk.viteMetadata.importedCss`

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

+7-4
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import type { Plugin } from '../plugin'
1818
import type { ResolvedConfig } from '../config'
1919
import { toOutputFilePathInJS } from '../build'
2020
import { genSourceMapUrl } from '../server/sourcemap'
21+
import type { Environment } from '../environment'
2122
import { removedPureCssFilesCache } from './css'
2223
import { createParseErrorInfo } from './importAnalysis'
2324

@@ -169,9 +170,10 @@ function preload(
169170
* Build only. During serve this is performed as part of ./importAnalysis.
170171
*/
171172
export function buildImportAnalysisPlugin(config: ResolvedConfig): Plugin {
172-
const ssr = !!config.build.ssr
173-
const isWorker = config.isWorker
174-
const insertPreload = !(ssr || !!config.build.lib || isWorker)
173+
const getInsertPreload = (environment: Environment) =>
174+
environment.config.consumer === 'client' &&
175+
!config.isWorker &&
176+
!config.build.lib
175177

176178
const renderBuiltUrl = config.experimental.renderBuiltUrl
177179
const isRelativeBase = config.base === './' || config.base === ''
@@ -237,6 +239,7 @@ export function buildImportAnalysisPlugin(config: ResolvedConfig): Plugin {
237239
return null
238240
}
239241

242+
const insertPreload = getInsertPreload(this.environment)
240243
// when wrapping dynamic imports with a preload helper, Rollup is unable to analyze the
241244
// accessed variables for treeshaking. This below tries to match common accessed syntax
242245
// to "copy" it over to the dynamic import wrapped by the preload helper.
@@ -402,7 +405,7 @@ export function buildImportAnalysisPlugin(config: ResolvedConfig): Plugin {
402405

403406
// If preload is not enabled, we parse through each imports and remove any imports to pure CSS chunks
404407
// as they are removed from the bundle
405-
if (!insertPreload) {
408+
if (!getInsertPreload(this.environment)) {
406409
const removedPureCssFiles = removedPureCssFilesCache.get(config)
407410
if (removedPureCssFiles && removedPureCssFiles.size > 0) {
408411
for (const file in bundle) {

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

+5-3
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ export const modulePreloadPolyfillId = 'vite/modulepreload-polyfill'
66
const resolvedModulePreloadPolyfillId = '\0' + modulePreloadPolyfillId + '.js'
77

88
export function modulePreloadPolyfillPlugin(config: ResolvedConfig): Plugin {
9-
// `isModernFlag` is only available during build since it is resolved by `vite:build-import-analysis`
10-
const skip = config.command !== 'build' || config.build.ssr
119
let polyfillString: string | undefined
1210

1311
return {
@@ -19,7 +17,11 @@ export function modulePreloadPolyfillPlugin(config: ResolvedConfig): Plugin {
1917
},
2018
load(id) {
2119
if (id === resolvedModulePreloadPolyfillId) {
22-
if (skip) {
20+
// `isModernFlag` is only available during build since it is resolved by `vite:build-import-analysis`
21+
if (
22+
config.command !== 'build' ||
23+
this.environment.config.consumer !== 'client'
24+
) {
2325
return ''
2426
}
2527
if (!polyfillString) {

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export function preAliasPlugin(config: ResolvedConfig): Plugin {
2828
name: 'vite:pre-alias',
2929
async resolveId(id, importer, options) {
3030
const { environment } = this
31-
const ssr = options?.ssr === true
31+
const ssr = environment.config.consumer === 'server'
3232
const depsOptimizer =
3333
environment.mode === 'dev' ? environment.depsOptimizer : undefined
3434
if (

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ export function buildReporterPlugin(config: ResolvedConfig): Plugin {
9393
code: string | Uint8Array,
9494
): Promise<number | null> {
9595
if (
96-
environment.config.build.ssr ||
96+
environment.config.consumer !== 'client' ||
9797
!environment.config.build.reportCompressedSize
9898
) {
9999
return null
@@ -255,7 +255,7 @@ export function buildReporterPlugin(config: ResolvedConfig): Plugin {
255255
hasLargeChunks &&
256256
environment.config.build.minify &&
257257
!config.build.lib &&
258-
!environment.config.build.ssr
258+
environment.config.consumer === 'client'
259259
) {
260260
environment.logger.warn(
261261
colors.yellow(

0 commit comments

Comments
 (0)
Please sign in to comment.