File tree 2 files changed +21
-4
lines changed
packages/vite/src/node/optimizer
playground/environment-react-ssr/__tests__
2 files changed +21
-4
lines changed Original file line number Diff line number Diff line change @@ -775,9 +775,11 @@ async function prepareEsbuildOptimizerRun(
775
775
if ( optimizerContext . cancelled ) return { context : undefined , idToExports }
776
776
777
777
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 ) ,
781
783
}
782
784
783
785
const platform =
@@ -1210,7 +1212,9 @@ function getConfigHash(environment: Environment): string {
1210
1212
const { optimizeDeps } = config
1211
1213
const content = JSON . stringify (
1212
1214
{
1213
- mode : process . env . NODE_ENV || config . mode ,
1215
+ define : ! config . keepProcessEnv
1216
+ ? process . env . NODE_ENV || config . mode
1217
+ : null ,
1214
1218
root : config . root ,
1215
1219
resolve : config . resolve ,
1216
1220
assetsInclude : config . assetsInclude ,
Original file line number Diff line number Diff line change @@ -38,6 +38,19 @@ describe.runIf(!isBuild)('pre-bundling', () => {
38
38
expect ( metaJson . optimized [ 'react/jsx-dev-runtime' ] ) . toBeTruthy ( )
39
39
40
40
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 )
41
54
} )
42
55
43
56
test ( 'deps reload' , async ( ) => {
You can’t perform that action at this time.
0 commit comments