From 88baa53961148d1ffc1c76248fa7122feabf671e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Tue, 19 Jul 2022 15:48:12 +0900 Subject: [PATCH] feat(css): use esbuild.log* options when minifying (#9210) --- packages/vite/src/node/plugins/css.ts | 9 ++++++++- playground/css/__tests__/css.spec.ts | 7 +++++++ playground/css/main.js | 2 ++ playground/css/unsupported.css | 3 +++ playground/css/vite.config.js | 5 +++++ 5 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 playground/css/unsupported.css diff --git a/packages/vite/src/node/plugins/css.ts b/packages/vite/src/node/plugins/css.ts index bfe60ed04dc529..b4429961ef479a 100644 --- a/packages/vite/src/node/plugins/css.ts +++ b/packages/vite/src/node/plugins/css.ts @@ -1249,18 +1249,25 @@ async function minifyCSS(css: string, config: ResolvedConfig) { function resolveEsbuildMinifyOptions( options: ESBuildOptions ): TransformOptions { + const base: TransformOptions = { + logLevel: options.logLevel, + logLimit: options.logLimit, + logOverride: options.logOverride + } + if ( options.minifyIdentifiers != null || options.minifySyntax != null || options.minifyWhitespace != null ) { return { + ...base, minifyIdentifiers: options.minifyIdentifiers ?? true, minifySyntax: options.minifySyntax ?? true, minifyWhitespace: options.minifyWhitespace ?? true } } else { - return { minify: true } + return { ...base, minify: true } } } diff --git a/playground/css/__tests__/css.spec.ts b/playground/css/__tests__/css.spec.ts index 57b75599150ea8..31425a19fc2c98 100644 --- a/playground/css/__tests__/css.spec.ts +++ b/playground/css/__tests__/css.spec.ts @@ -442,3 +442,10 @@ test('aliased css has content', async () => { // expect(await page.textContent('.aliased-content')).toMatch('.aliased') expect(await getColor('.aliased-module')).toBe('blue') }) + +test.runIf(isBuild)('warning can be suppressed by esbuild.logOverride', () => { + serverLogs.forEach((log) => { + // no warning from esbuild css minifier + expect(log).not.toMatch('unsupported-css-property') + }) +}) diff --git a/playground/css/main.js b/playground/css/main.js index c9384b6a79013c..45e7730b868eb1 100644 --- a/playground/css/main.js +++ b/playground/css/main.js @@ -104,3 +104,5 @@ import aliasModule from '#alias-module' document .querySelector('.aliased-module') .classList.add(aliasModule.aliasedModule) + +import './unsupported.css' diff --git a/playground/css/unsupported.css b/playground/css/unsupported.css new file mode 100644 index 00000000000000..c17818a3ab33d7 --- /dev/null +++ b/playground/css/unsupported.css @@ -0,0 +1,3 @@ +.unsupported { + overflow-x: hidden; +} diff --git a/playground/css/vite.config.js b/playground/css/vite.config.js index c501213b47cded..704eb134e25880 100644 --- a/playground/css/vite.config.js +++ b/playground/css/vite.config.js @@ -7,6 +7,11 @@ module.exports = { build: { cssTarget: 'chrome61' }, + esbuild: { + logOverride: { + 'unsupported-css-property': 'silent' + } + }, resolve: { alias: { '@': __dirname,