From 4caf4b69376608091c0a8f45ec0cc3f568313253 Mon Sep 17 00:00:00 2001 From: Azat S Date: Wed, 9 Nov 2022 17:51:57 +0300 Subject: [PATCH] feat!: set esbuild default charset to utf8 (#10753) --- packages/vite/src/node/__tests__/plugins/esbuild.spec.ts | 7 +++++++ packages/vite/src/node/optimizer/index.ts | 1 + packages/vite/src/node/plugins/esbuild.ts | 3 +++ 3 files changed, 11 insertions(+) diff --git a/packages/vite/src/node/__tests__/plugins/esbuild.spec.ts b/packages/vite/src/node/__tests__/plugins/esbuild.spec.ts index d1c98348c5c453..9a350a46bee5a2 100644 --- a/packages/vite/src/node/__tests__/plugins/esbuild.spec.ts +++ b/packages/vite/src/node/__tests__/plugins/esbuild.spec.ts @@ -17,6 +17,7 @@ describe('resolveEsbuildTranspileOptions', () => { 'es' ) expect(options).toEqual({ + charset: 'utf8', target: 'es2020', format: 'esm', keepNames: true, @@ -59,6 +60,7 @@ describe('resolveEsbuildTranspileOptions', () => { 'es' ) expect(options).toEqual({ + charset: 'utf8', target: undefined, format: 'esm', keepNames: true, @@ -88,6 +90,7 @@ describe('resolveEsbuildTranspileOptions', () => { 'es' ) expect(options).toEqual({ + charset: 'utf8', target: 'es2020', format: 'esm', keepNames: true, @@ -119,6 +122,7 @@ describe('resolveEsbuildTranspileOptions', () => { 'es' ) expect(options).toEqual({ + charset: 'utf8', target: undefined, format: 'esm', keepNames: true, @@ -150,6 +154,7 @@ describe('resolveEsbuildTranspileOptions', () => { 'cjs' ) expect(options).toEqual({ + charset: 'utf8', target: undefined, format: 'cjs', keepNames: true, @@ -180,6 +185,7 @@ describe('resolveEsbuildTranspileOptions', () => { 'es' ) expect(options).toEqual({ + charset: 'utf8', target: undefined, format: 'esm', keepNames: true, @@ -214,6 +220,7 @@ describe('resolveEsbuildTranspileOptions', () => { 'cjs' ) expect(options).toEqual({ + charset: 'utf8', target: undefined, format: 'cjs', keepNames: true, diff --git a/packages/vite/src/node/optimizer/index.ts b/packages/vite/src/node/optimizer/index.ts index 94447b9403393b..9ffc7f72a1ace9 100644 --- a/packages/vite/src/node/optimizer/index.ts +++ b/packages/vite/src/node/optimizer/index.ts @@ -612,6 +612,7 @@ export async function runOptimizeDeps( ignoreAnnotations: !isBuild, metafile: true, plugins, + charset: 'utf8', ...esbuildOptions, supported: { 'dynamic-import': true, diff --git a/packages/vite/src/node/plugins/esbuild.ts b/packages/vite/src/node/plugins/esbuild.ts index 43c319f2713761..137911377d15be 100644 --- a/packages/vite/src/node/plugins/esbuild.ts +++ b/packages/vite/src/node/plugins/esbuild.ts @@ -180,6 +180,7 @@ export function esbuildPlugin(options: ESBuildOptions = {}): Plugin { // and for build as the final optimization is in `buildEsbuildPlugin` const transformOptions: TransformOptions = { target: 'esnext', + charset: 'utf8', ...options, minify: false, minifyIdentifiers: false, @@ -306,7 +307,9 @@ export function resolveEsbuildTranspileOptions( // https://github.com/vuejs/core/issues/2860#issuecomment-926882793 const isEsLibBuild = config.build.lib && format === 'es' const esbuildOptions = config.esbuild || {} + const options: TransformOptions = { + charset: 'utf8', ...esbuildOptions, target: target || undefined, format: rollupToEsbuildFormatMap[format],