Skip to content

Commit 52e64eb

Browse files
authoredNov 7, 2022
fix: relocated logger to respect config. (#10787)
1 parent 16e4123 commit 52e64eb

File tree

2 files changed

+55
-7
lines changed

2 files changed

+55
-7
lines changed
 

‎packages/vite/src/node/__tests__/config.spec.ts

+49-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { describe, expect, test } from 'vitest'
22
import type { InlineConfig } from '..'
3-
import type { UserConfig, UserConfigExport } from '../config'
3+
import type { PluginOption, UserConfig, UserConfigExport } from '../config'
44
import { resolveConfig } from '../config'
55
import { resolveEnvPrefix } from '../env'
66
import { mergeConfig } from '../publicUtils'
@@ -266,3 +266,51 @@ describe('preview config', () => {
266266
})
267267
})
268268
})
269+
270+
describe('resolveConfig', () => {
271+
const keepScreenMergePlugin = (): PluginOption => {
272+
return {
273+
name: 'vite-plugin-keep-screen-merge',
274+
config() {
275+
return { clearScreen: false }
276+
}
277+
}
278+
}
279+
280+
const keepScreenOverridePlugin = (): PluginOption => {
281+
return {
282+
name: 'vite-plugin-keep-screen-override',
283+
config(config) {
284+
config.clearScreen = false
285+
}
286+
}
287+
}
288+
289+
test('plugin merges `clearScreen` option', async () => {
290+
const config1: InlineConfig = { plugins: [keepScreenMergePlugin()] }
291+
const config2: InlineConfig = {
292+
plugins: [keepScreenMergePlugin()],
293+
clearScreen: true
294+
}
295+
296+
const results1 = await resolveConfig(config1, 'build')
297+
const results2 = await resolveConfig(config2, 'build')
298+
299+
expect(results1.clearScreen).toBe(false)
300+
expect(results2.clearScreen).toBe(false)
301+
})
302+
303+
test('plugin overrides `clearScreen` option', async () => {
304+
const config1: InlineConfig = { plugins: [keepScreenOverridePlugin()] }
305+
const config2: InlineConfig = {
306+
plugins: [keepScreenOverridePlugin()],
307+
clearScreen: true
308+
}
309+
310+
const results1 = await resolveConfig(config1, 'build')
311+
const results2 = await resolveConfig(config2, 'build')
312+
313+
expect(results1.clearScreen).toBe(false)
314+
expect(results2.clearScreen).toBe(false)
315+
})
316+
})

‎packages/vite/src/node/config.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -408,12 +408,6 @@ export async function resolveConfig(
408408
}
409409
}
410410

411-
// Define logger
412-
const logger = createLogger(config.logLevel, {
413-
allowClearScreen: config.clearScreen,
414-
customLogger: config.customLogger
415-
})
416-
417411
// user config may provide an alternative mode. But --mode has a higher priority
418412
mode = inlineConfig.mode || config.mode || mode
419413
configEnv.mode = mode
@@ -457,6 +451,12 @@ export async function resolveConfig(
457451
config.build.commonjsOptions = { include: [] }
458452
}
459453

454+
// Define logger
455+
const logger = createLogger(config.logLevel, {
456+
allowClearScreen: config.clearScreen,
457+
customLogger: config.customLogger
458+
})
459+
460460
// resolve root
461461
const resolvedRoot = normalizePath(
462462
config.root ? path.resolve(config.root) : process.cwd()

0 commit comments

Comments
 (0)
Please sign in to comment.