File tree Expand file tree Collapse file tree
packages/vite/src/node/optimizer
playground/environment-react-ssr/__tests__ Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -775,9 +775,11 @@ async function prepareEsbuildOptimizerRun(
775775 if ( optimizerContext . cancelled ) return { context : undefined , idToExports }
776776
777777 const define = {
778- 'process.env.NODE_ENV' : JSON . stringify (
779- process . env . NODE_ENV || environment . config . mode ,
780- ) ,
778+ 'process.env.NODE_ENV' : environment . config . keepProcessEnv
779+ ? // define process.env.NODE_ENV even for keepProcessEnv === true
780+ // as esbuild will replace it automatically when `platform` is `'browser'`
781+ 'process.env.NODE_ENV'
782+ : JSON . stringify ( process . env . NODE_ENV || environment . config . mode ) ,
781783 }
782784
783785 const platform =
@@ -1210,7 +1212,9 @@ function getConfigHash(environment: Environment): string {
12101212 const { optimizeDeps } = config
12111213 const content = JSON . stringify (
12121214 {
1213- mode : process . env . NODE_ENV || config . mode ,
1215+ define : ! config . keepProcessEnv
1216+ ? process . env . NODE_ENV || config . mode
1217+ : null ,
12141218 root : config . root ,
12151219 resolve : config . resolve ,
12161220 assetsInclude : config . assetsInclude ,
Original file line number Diff line number Diff line change @@ -38,6 +38,19 @@ describe.runIf(!isBuild)('pre-bundling', () => {
3838 expect ( metaJson . optimized [ 'react/jsx-dev-runtime' ] ) . toBeTruthy ( )
3939
4040 expect ( metaJson . optimized [ 'react-dom/client' ] ) . toBeFalsy ( )
41+
42+ // process.env.NODE_ENV should be kept as keepProcessEnv is true
43+ const depsFiles = fs
44+ . readdirSync ( path . resolve ( testDir , 'node_modules/.vite/deps_ssr' ) , {
45+ withFileTypes : true ,
46+ } )
47+ . filter ( ( file ) => file . isFile ( ) && file . name . endsWith ( '.js' ) )
48+ . map ( ( file ) => path . join ( file . parentPath , file . name ) )
49+ const depsFilesWithProcessEnvNodeEnv = depsFiles . filter ( ( file ) =>
50+ fs . readFileSync ( file , 'utf-8' ) . includes ( 'process.env.NODE_ENV' ) ,
51+ )
52+
53+ expect ( depsFilesWithProcessEnvNodeEnv . length ) . toBeGreaterThan ( 0 )
4154 } )
4255
4356 test ( 'deps reload' , async ( ) => {
You can’t perform that action at this time.
0 commit comments