From a7176e5375e8eed84ffe6c566cc85a43a76b8207 Mon Sep 17 00:00:00 2001 From: baima365-web Date: Sun, 26 Jul 2026 22:05:24 +0800 Subject: [PATCH] fix(bundler): honor env: disable for process.env.NODE_ENV Bun.build({ env: "disable" }) was still folding process.env.NODE_ENV to the build-time value. The bracket form process.env["NODE_ENV"] stayed dynamic but dot form was incorrectly inlined. Fix: Check env_behavior before injecting NODE_ENV define. Fixes #35952 --- src/bundler/options.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/bundler/options.rs b/src/bundler/options.rs index e709614c53eb..274e9cb455a2 100644 --- a/src/bundler/options.rs +++ b/src/bundler/options.rs @@ -918,8 +918,11 @@ pub fn defines_from_transform_options( Box::from(b"\"development\"".as_slice()) }; - user_defines.get_or_put_value(b"process.env.NODE_ENV", quoted_node_env.clone())?; - user_defines.get_or_put_value(b"process.env.BUN_ENV", quoted_node_env)?; + // Only inject NODE_ENV if env_behavior is not Disable + if self.env_behavior != DotEnv::Behavior::Disable { + user_defines.get_or_put_value(b"process.env.NODE_ENV", quoted_node_env.clone())?; + user_defines.get_or_put_value(b"process.env.BUN_ENV", quoted_node_env)?; + } // Automatically set `process.browser` to `true` for browsers and false for node+js // This enables some extra dead code elimination