diff --git a/packages/plugin-vite/src/plugins/patches.ts b/packages/plugin-vite/src/plugins/patches.ts index a9036015032..2dd95e68c61 100644 --- a/packages/plugin-vite/src/plugins/patches.ts +++ b/packages/plugin-vite/src/plugins/patches.ts @@ -6,7 +6,6 @@ import babelReact from "@babel/preset-react"; import { inlineEnvVarsPlugin } from "./patches/inline_env_vars.ts"; import { removePolyfills } from "./patches/remove_polyfills.ts"; import { JS_REG, JSX_REG } from "../utils.ts"; -import { denoGlobal } from "./patches/deno_global.ts"; import { codeEvalPlugin } from "./patches/code_eval.ts"; export function patches(): Plugin { @@ -44,10 +43,6 @@ export function patches(): Plugin { inlineEnvVarsPlugin(env, Deno.env.toObject()), ]; - if (!options?.ssr) { - plugins.push(denoGlobal); - } - const res = babel.transformSync(code, { filename: id, babelrc: false, diff --git a/packages/plugin-vite/src/plugins/patches/deno_global.ts b/packages/plugin-vite/src/plugins/patches/deno_global.ts deleted file mode 100644 index 297382b151f..00000000000 --- a/packages/plugin-vite/src/plugins/patches/deno_global.ts +++ /dev/null @@ -1,36 +0,0 @@ -import type { PluginObj, types } from "@babel/core"; - -export function denoGlobal({ types: t }: { types: typeof types }): PluginObj { - return { - name: "fresh-deno-global", - visitor: { - Identifier(path) { - if (path.node.name === "Deno") { - // Ignore `Deno.env.get()` calls. Those will be inlined. - if ( - t.isMemberExpression(path.parent) && - path.parent.object === path.node && - t.isIdentifier(path.parent.property) && - path.parent.property.name === "env" && - t.isMemberExpression(path.parentPath?.parent) && - t.isIdentifier(path.parentPath?.parent.property) && - path.parentPath?.parent.property.name === "get" - ) { - return; - } - // Ignore `Deno?.thing` expression. Those will result in undefined, and that might be used for shims. - if ( - t.isOptionalMemberExpression(path.parent) && - path.parent.object === path.node - ) { - return; - } - - throw path.buildCodeFrameError( - `The Deno.* global cannot be used in the browser.`, - ); - } - }, - }, - }; -} diff --git a/packages/plugin-vite/tests/build_test.ts b/packages/plugin-vite/tests/build_test.ts index c9f8fbdac53..0fb4207f5de 100644 --- a/packages/plugin-vite/tests/build_test.ts +++ b/packages/plugin-vite/tests/build_test.ts @@ -408,30 +408,6 @@ Deno.test({ sanitizeResources: false, }); -Deno.test({ - name: "vite build - throw when using Deno.* global inside an island", - fn: async () => { - const fixture = path.join(FIXTURE_DIR, "deno_global_island"); - - await expect(buildVite(fixture)).rejects.toThrow( - "The Deno.* global cannot be used in the browser", - ); - }, - sanitizeOps: false, - sanitizeResources: false, -}); - -Deno.test({ - name: "vite build - don't throw when using Deno.* global in ssr", - fn: async () => { - const fixture = path.join(FIXTURE_DIR, "deno_global_ssr"); - - await buildVite(fixture); - }, - sanitizeOps: false, - sanitizeResources: false, -}); - Deno.test({ name: "vite build - static index.html", fn: async () => {