From a94b331f95a9bc1e2191e13948a7ccfd297e8cfd Mon Sep 17 00:00:00 2001 From: moushicheng Date: Fri, 23 Dec 2022 18:43:30 +0800 Subject: [PATCH] fix: import(/* @vite-ignore */) is not worked in *.ts for v4 (#11377) --- packages/vite/src/node/plugins/esbuild.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/packages/vite/src/node/plugins/esbuild.ts b/packages/vite/src/node/plugins/esbuild.ts index 1e6e4927e87718..62b565dd5d48b4 100644 --- a/packages/vite/src/node/plugins/esbuild.ts +++ b/packages/vite/src/node/plugins/esbuild.ts @@ -254,6 +254,14 @@ export function esbuildPlugin(options: ESBuildOptions = {}): Plugin { }, async transform(code, id) { if (filter(id) || filter(cleanUrl(id))) { + let hasViteIgnore = false + if (/\/\* @vite-ignore \*\//.test(code)) { + hasViteIgnore = true + code = code.replace( + /\s*\/\* @vite-ignore \*\/\s*/g, + '__vite__ignore__', + ) + } const result = await transformWithEsbuild(code, id, transformOptions) if (result.warnings.length) { result.warnings.forEach((m) => { @@ -263,6 +271,12 @@ export function esbuildPlugin(options: ESBuildOptions = {}): Plugin { if (options.jsxInject && /\.(?:j|t)sx\b/.test(id)) { result.code = options.jsxInject + ';' + result.code } + if (hasViteIgnore) { + result.code = result.code.replace( + /__vite__ignore__/, + '/* @vite-ignore */', + ) + } return { code: result.code, map: result.map,