Skip to content

Commit d1f7d49

Browse files
fix(vite): importing node:* builtins (#3245)
1 parent 138784a commit d1f7d49

6 files changed

Lines changed: 65 additions & 0 deletions

File tree

deno.lock

Lines changed: 19 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import * as feed from "feed";
2+
3+
export default function Page() {
4+
// deno-lint-ignore no-console
5+
console.log(feed);
6+
return <h1>feed</h1>;
7+
}

packages/plugin-vite/deno.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
"@tailwindcss/vite": "npm:@tailwindcss/vite@^4.1.12",
2828
"@types/babel__core": "npm:@types/babel__core@^7.20.5",
2929
"@types/node": "npm:@types/node@^24.1.0",
30+
"feed": "npm:feed@^5.1.0",
3031
"mime-db": "npm:mime-db@^1.54.0",
3132
"preact": "npm:preact@^10.26.9",
3233
"rollup-plugin-visualizer": "npm:rollup-plugin-visualizer@^6.0.3",

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,13 @@ export function deno(): Plugin {
102102
ResolutionMode.Import,
103103
);
104104

105+
if (resolved.startsWith("node:")) {
106+
return {
107+
id: resolved,
108+
external: true,
109+
};
110+
}
111+
105112
if (original === resolved) {
106113
return null;
107114
}

packages/plugin-vite/tests/build_test.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -322,3 +322,21 @@ Deno.test({
322322
sanitizeOps: false,
323323
sanitizeResources: false,
324324
});
325+
326+
Deno.test({
327+
name: "vite build - import node:*",
328+
fn: async () => {
329+
await using res = await buildVite(DEMO_DIR);
330+
331+
await launchProd(
332+
{ cwd: res.tmp },
333+
async (address) => {
334+
const res = await fetch(`${address}/tests/feed`);
335+
await res.body?.cancel();
336+
expect(res.status).toEqual(200);
337+
},
338+
);
339+
},
340+
sanitizeOps: false,
341+
sanitizeResources: false,
342+
});

packages/plugin-vite/tests/dev_server_test.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,3 +251,16 @@ Deno.test({
251251
sanitizeResources: false,
252252
sanitizeOps: false,
253253
});
254+
255+
Deno.test({
256+
name: "vite dev - import node:*",
257+
fn: async () => {
258+
await withDevServer(DEMO_DIR, async (address) => {
259+
const res = await fetch(`${address}/tests/feed`);
260+
await res.body?.cancel();
261+
expect(res.status).toEqual(200);
262+
});
263+
},
264+
sanitizeResources: false,
265+
sanitizeOps: false,
266+
});

0 commit comments

Comments
 (0)