Skip to content

Commit 72e9ad2

Browse files
committed
feat: add dotenv-flow for environment variable management in serve command
1 parent 59858ea commit 72e9ad2

4 files changed

Lines changed: 24 additions & 2 deletions

File tree

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,3 +87,7 @@ next-env.d.ts
8787
apps/*/. source/
8888
apps/*/.next/docs/
8989
.turbo
90+
91+
# Local env overrides (may contain secrets)
92+
.env.local
93+
.env.*.local

packages/cli/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
"@oclif/core": "^4.9.0",
5050
"bundle-require": "^5.1.0",
5151
"chalk": "^5.3.0",
52+
"dotenv-flow": "^4.1.0",
5253
"tsx": "^4.7.1",
5354
"zod": "^4.3.6"
5455
},

packages/cli/src/commands/serve.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import {
2323
hasStudioDist,
2424
createStudioStaticPlugin,
2525
} from '../utils/studio.js';
26+
import dotenvFlow from 'dotenv-flow';
2627

2728
// Helper to find available port
2829
const getAvailablePort = async (startPort: number): Promise<number> => {
@@ -76,6 +77,12 @@ export default class Serve extends Command {
7677
// Ignore error and try with original port
7778
}
7879

80+
// Load .env files following Vite/Next.js convention
81+
const mode = flags.dev ? 'development'
82+
: (process.env.NODE_ENV === 'test' ? 'test'
83+
: (process.env.NODE_ENV || 'production'));
84+
dotenvFlow.config({ node_env: mode, silent: true });
85+
7986
const isDev = flags.dev || process.env.NODE_ENV === 'development';
8087

8188
const absolutePath = path.resolve(process.cwd(), args.config!);

pnpm-lock.yaml

Lines changed: 12 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)