From cea2129649ce31f3aba96e5a1d2e4b389ee02520 Mon Sep 17 00:00:00 2001 From: Zack Tanner <1939140+ztanner@users.noreply.github.com> Date: Mon, 23 Sep 2024 17:51:47 -0700 Subject: [PATCH] add builtin node modules to webpack externals --- packages/next/src/build/webpack-config.ts | 3 +++ .../node-builtins/app/server-component/page.js | 2 ++ turbopack/crates/turbopack-resolve/src/resolve.rs | 14 +++++++++++++- 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/packages/next/src/build/webpack-config.ts b/packages/next/src/build/webpack-config.ts index 65cf6777509cc..56c8349cfc07d 100644 --- a/packages/next/src/build/webpack-config.ts +++ b/packages/next/src/build/webpack-config.ts @@ -833,6 +833,8 @@ export default async function getBaseWebpackConfig( const aliasCodeConditionTest = [codeCondition.test, pageExtensionsRegex] + const builtinModules = require('module').builtinModules + let webpackConfig: webpack.Configuration = { parallelism: Number(process.env.NEXT_WEBPACK_PARALLELISM) || undefined, ...(isNodeServer ? { externalsPresets: { node: true } } : {}), @@ -856,6 +858,7 @@ export default async function getBaseWebpackConfig( : []), ] : [ + ...builtinModules, ({ context, request, diff --git a/test/development/basic/node-builtins/app/server-component/page.js b/test/development/basic/node-builtins/app/server-component/page.js index a995bd45e81f4..7ab8f00e5384a 100644 --- a/test/development/basic/node-builtins/app/server-component/page.js +++ b/test/development/basic/node-builtins/app/server-component/page.js @@ -18,6 +18,8 @@ import timers from 'timers' import tty from 'tty' import util from 'util' import zlib from 'zlib' + +import '_http_common' import 'setimmediate' async function getData() { diff --git a/turbopack/crates/turbopack-resolve/src/resolve.rs b/turbopack/crates/turbopack-resolve/src/resolve.rs index 9f65b51b9226a..f43e257b07418 100644 --- a/turbopack/crates/turbopack-resolve/src/resolve.rs +++ b/turbopack/crates/turbopack-resolve/src/resolve.rs @@ -15,7 +15,7 @@ use crate::{ typescript::{apply_tsconfig_resolve_options, tsconfig, tsconfig_resolve_options}, }; -const NODE_EXTERNALS: [&str; 51] = [ +const NODE_EXTERNALS: [&str; 63] = [ "assert", "async_hooks", "buffer", @@ -67,6 +67,18 @@ const NODE_EXTERNALS: [&str; 51] = [ "worker_threads", "zlib", "pnpapi", + "_http_agent", + "_http_client", + "_http_common", + "_http_incoming", + "_http_outgoing", + "_http_server", + "_stream_duplex", + "_stream_passthrough", + "_stream_readable", + "_stream_transform", + "_stream_wrap", + "_stream_writable", ]; const EDGE_NODE_EXTERNALS: [&str; 5] = ["buffer", "events", "assert", "util", "async_hooks"];