@@ -822,7 +822,6 @@ function resolveEnvironmentOptions(
822
822
preserveSymlinks : boolean ,
823
823
forceOptimizeDeps : boolean | undefined ,
824
824
logger : Logger ,
825
- isProduction : boolean ,
826
825
environmentName : string ,
827
826
// Backward compatibility
828
827
skipSsrTransform ?: boolean ,
@@ -888,7 +887,6 @@ function resolveEnvironmentOptions(
888
887
options . build ?? { } ,
889
888
logger ,
890
889
consumer ,
891
- isProduction ,
892
890
) ,
893
891
// will be set by `setOptimizeDepsPluginNames` later
894
892
optimizeDepsPluginNames : undefined ! ,
@@ -1447,36 +1445,6 @@ export async function resolveConfig(
1447
1445
config . ssr ?. target === 'webworker' ,
1448
1446
)
1449
1447
1450
- // load .env files
1451
- // Backward compatibility: set envDir to false when envFile is false
1452
- let envDir = config . envFile === false ? false : config . envDir
1453
- if ( envDir !== false ) {
1454
- envDir = config . envDir
1455
- ? normalizePath ( path . resolve ( resolvedRoot , config . envDir ) )
1456
- : resolvedRoot
1457
- }
1458
-
1459
- const userEnv = loadEnv ( mode , envDir , resolveEnvPrefix ( config ) )
1460
-
1461
- // Note it is possible for user to have a custom mode, e.g. `staging` where
1462
- // development-like behavior is expected. This is indicated by NODE_ENV=development
1463
- // loaded from `.staging.env` and set by us as VITE_USER_NODE_ENV
1464
- const userNodeEnv = process . env . VITE_USER_NODE_ENV
1465
- if ( ! isNodeEnvSet && userNodeEnv ) {
1466
- if ( userNodeEnv === 'development' ) {
1467
- process . env . NODE_ENV = 'development'
1468
- } else {
1469
- // NODE_ENV=production is not supported as it could break HMR in dev for frameworks like Vue
1470
- logger . warn (
1471
- `NODE_ENV=${ userNodeEnv } is not supported in the .env file. ` +
1472
- `Only NODE_ENV=development is supported to create a development build of your project. ` +
1473
- `If you need to set process.env.NODE_ENV, you can set it in the Vite config instead.` ,
1474
- )
1475
- }
1476
- }
1477
-
1478
- const isProduction = process . env . NODE_ENV === 'production'
1479
-
1480
1448
// Backward compatibility: merge config.environments.client.resolve back into config.resolve
1481
1449
config . resolve ??= { }
1482
1450
config . resolve . conditions = config . environments . client . resolve ?. conditions
@@ -1492,7 +1460,6 @@ export async function resolveConfig(
1492
1460
resolvedDefaultResolve . preserveSymlinks ,
1493
1461
inlineConfig . forceOptimizeDeps ,
1494
1462
logger ,
1495
- isProduction ,
1496
1463
environmentName ,
1497
1464
config . experimental ?. skipSsrTransform ,
1498
1465
config . ssr ?. target === 'webworker' ,
@@ -1518,7 +1485,6 @@ export async function resolveConfig(
1518
1485
config . build ?? { } ,
1519
1486
logger ,
1520
1487
undefined ,
1521
- isProduction ,
1522
1488
)
1523
1489
1524
1490
// Backward compatibility: merge config.environments.ssr back into config.ssr
@@ -1539,6 +1505,36 @@ export async function resolveConfig(
1539
1505
resolvedDefaultResolve . preserveSymlinks ,
1540
1506
)
1541
1507
1508
+ // load .env files
1509
+ // Backward compatibility: set envDir to false when envFile is false
1510
+ let envDir = config . envFile === false ? false : config . envDir
1511
+ if ( envDir !== false ) {
1512
+ envDir = config . envDir
1513
+ ? normalizePath ( path . resolve ( resolvedRoot , config . envDir ) )
1514
+ : resolvedRoot
1515
+ }
1516
+
1517
+ const userEnv = loadEnv ( mode , envDir , resolveEnvPrefix ( config ) )
1518
+
1519
+ // Note it is possible for user to have a custom mode, e.g. `staging` where
1520
+ // development-like behavior is expected. This is indicated by NODE_ENV=development
1521
+ // loaded from `.staging.env` and set by us as VITE_USER_NODE_ENV
1522
+ const userNodeEnv = process . env . VITE_USER_NODE_ENV
1523
+ if ( ! isNodeEnvSet && userNodeEnv ) {
1524
+ if ( userNodeEnv === 'development' ) {
1525
+ process . env . NODE_ENV = 'development'
1526
+ } else {
1527
+ // NODE_ENV=production is not supported as it could break HMR in dev for frameworks like Vue
1528
+ logger . warn (
1529
+ `NODE_ENV=${ userNodeEnv } is not supported in the .env file. ` +
1530
+ `Only NODE_ENV=development is supported to create a development build of your project. ` +
1531
+ `If you need to set process.env.NODE_ENV, you can set it in the Vite config instead.` ,
1532
+ )
1533
+ }
1534
+ }
1535
+
1536
+ const isProduction = process . env . NODE_ENV === 'production'
1537
+
1542
1538
// resolve public base url
1543
1539
const relativeBaseShortcut = config . base === '' || config . base === './'
1544
1540
0 commit comments