Skip to content

Commit 105ffe5

Browse files
fix(vite): only transform js-like files in deno loader (#3234)
1 parent 9f09786 commit 105ffe5

1 file changed

Lines changed: 37 additions & 2 deletions

File tree

  • packages/plugin-vite/src/plugins

packages/plugin-vite/src/plugins/deno.ts

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import type { Plugin } from "vite";
22
import {
33
type Loader,
4+
MediaType,
45
RequestedModuleType,
56
ResolutionMode,
67
Workspace,
@@ -140,6 +141,7 @@ export function deno(): Plugin {
140141

141142
const maybeJsx = babelTransform({
142143
ssr: !!options?.ssr,
144+
media: result.mediaType,
143145
code,
144146
id: specifier,
145147
isDev,
@@ -183,6 +185,7 @@ export function deno(): Plugin {
183185

184186
const maybeJsx = babelTransform({
185187
ssr: !!options?.ssr,
188+
media: result.mediaType,
186189
id,
187190
code,
188191
isDev,
@@ -233,6 +236,32 @@ export function deno(): Plugin {
233236
};
234237
}
235238

239+
function isJsMediaType(media: MediaType): boolean {
240+
switch (media) {
241+
case MediaType.JavaScript:
242+
case MediaType.Jsx:
243+
case MediaType.Mjs:
244+
case MediaType.Cjs:
245+
case MediaType.TypeScript:
246+
case MediaType.Mts:
247+
case MediaType.Cts:
248+
case MediaType.Tsx:
249+
return true;
250+
251+
case MediaType.Dts:
252+
case MediaType.Dmts:
253+
case MediaType.Dcts:
254+
case MediaType.Css:
255+
case MediaType.Json:
256+
case MediaType.Html:
257+
case MediaType.Sql:
258+
case MediaType.Wasm:
259+
case MediaType.SourceMap:
260+
case MediaType.Unknown:
261+
return false;
262+
}
263+
}
264+
236265
export type DenoSpecifier = string & { __deno: string };
237266

238267
function isDenoSpecifier(str: unknown): str is DenoSpecifier {
@@ -286,10 +315,16 @@ function getDenoType(id: string, type: string): RequestedModuleType {
286315
}
287316

288317
function babelTransform(
289-
options: { ssr: boolean; code: string; id: string; isDev: boolean },
318+
options: {
319+
media: MediaType;
320+
ssr: boolean;
321+
code: string;
322+
id: string;
323+
isDev: boolean;
324+
},
290325
) {
291326
if (
292-
!/\.([tj]sx?|[mc[jt]s)$/.test(options.id) &&
327+
!isJsMediaType(options.media) &&
293328
!/^https?:\/\//.test(options.id)
294329
) {
295330
return null;

0 commit comments

Comments
 (0)