Skip to content

Commit e32b1d1

Browse files
authored
fix(env files): rename to --load-env-files (#10123)
Last change before releasing the minor. This wraps up the env files feature started in #9961. To recap on the naming decision a bit, we can't use just "--env-file" because Node.js seems to parse it no matter what, and since Redwood's flag operates on suffixes, Node throws a "not found" error. It also seems to parse "--env-files", with an "s", which seems like a bug. I opted for "--add-env-files" back when this flag only added additional env vars, which didn't override existing ones. This is no longer the case (they override), so I don't want to imply that they don't. "--load-env-files" seems like the best alternative, and there's a precedence in the work done in Node.js here which exposes a new `loadEnvFile` function: nodejs/node#51476.
1 parent 5c8d77f commit e32b1d1

File tree

4 files changed

+18
-18
lines changed

4 files changed

+18
-18
lines changed

CHANGELOG.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,17 +41,17 @@ Some apps rely on reading the host header(eg multi-tenant apps served over multi
4141

4242
- Add support for loading more env var files (#9961, #10093, and #10094)
4343

44-
Fixes #9877. This PR adds CLI functionality to load more `.env` files via `NODE_ENV` and an `--add-env-files` flag.
44+
Fixes #9877. This PR adds CLI functionality to load more `.env` files via `NODE_ENV` and an `--load-env-files` flag.
4545
Env vars loaded via either of these methods override the values in `.env`:
4646

4747
```
4848
# Loads '.env.production', which overrides values in '.env'
4949
NODE_ENV=production yarn rw exec myScript
5050
5151
# Load '.env.stripe' and '.env.nakama', which overrides values
52-
yarn rw exec myScript --add-env-files stripe --add-env-files nakama
53-
# Or you can specify the flag once:
54-
yarn rw exec myScript --add-env-files stripe nakama
52+
yarn rw exec myScript --load-env-files stripe nakama
53+
# Or you can specify them individually:
54+
yarn rw exec myScript --load-env-files stripe --load-env-files nakama
5555
```
5656

5757
Note that this feature is mainly for local scripting. Most deploy providers don't let you upload `.env` files (unless you're using baremetal) and usually have their own way of determining environments.

packages/cli/src/index.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ async function runYargs() {
166166
(argv) => {
167167
delete argv.cwd
168168
delete argv.addEnvFiles
169-
delete argv['add-env-files']
169+
delete argv['load-env-files']
170170
delete argv.telemetry
171171
},
172172
telemetry && telemetryMiddleware,
@@ -176,13 +176,13 @@ async function runYargs() {
176176
.option('cwd', {
177177
describe: 'Working directory to use (where `redwood.toml` is located)',
178178
})
179-
.option('add-env-files', {
179+
.option('load-env-files', {
180180
describe:
181181
'Load additional .env files. Values defined in files specified later override earlier ones.',
182182
array: true,
183183
})
184184
.example(
185-
'yarn rw exec migrateUsers --add-env-files stripe nakama',
185+
'yarn rw exec migrateUsers --load-env-files stripe nakama',
186186
"Run a script, also loading env vars from '.env.stripe' and '.env.nakama'"
187187
)
188188
.option('telemetry', {
@@ -192,7 +192,7 @@ async function runYargs() {
192192
})
193193
.example(
194194
'yarn rw g page home /',
195-
"\"Create a page component named 'Home' at path '/'\""
195+
"Create a page component named 'Home' at path '/'"
196196
)
197197
.demandCommand()
198198
.strict()

packages/cli/src/lib/loadEnvFiles.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ export function loadEnvFiles() {
1919
loadDefaultEnvFiles(base)
2020
loadNodeEnvDerivedEnvFile(base)
2121

22-
const { addEnvFiles } = Parser(hideBin(process.argv), {
23-
array: ['add-env-files'],
22+
const { loadEnvFiles } = Parser(hideBin(process.argv), {
23+
array: ['load-env-files'],
2424
default: {
25-
addEnvFiles: [],
25+
loadEnvFiles: [],
2626
},
2727
})
28-
if (addEnvFiles.length > 0) {
29-
loadUserSpecifiedEnvFiles(base, addEnvFiles)
28+
if (loadEnvFiles.length > 0) {
29+
loadUserSpecifiedEnvFiles(base, loadEnvFiles)
3030
}
3131

3232
process.env.REDWOOD_ENV_FILES_LOADED = 'true'
@@ -65,12 +65,12 @@ export function loadNodeEnvDerivedEnvFile(cwd) {
6565
/**
6666
* @param {string} cwd
6767
*/
68-
export function loadUserSpecifiedEnvFiles(cwd, addEnvFiles) {
69-
for (const suffix of addEnvFiles) {
68+
export function loadUserSpecifiedEnvFiles(cwd, loadEnvFiles) {
69+
for (const suffix of loadEnvFiles) {
7070
const envPath = path.join(cwd, `.env.${suffix}`)
7171
if (!fs.pathExistsSync(envPath)) {
7272
throw new Error(
73-
`Couldn't find an .env file at '${envPath}' as specified by '--add-env-files'`
73+
`Couldn't find an .env file at '${envPath}' as specified by '--load-env-files'`
7474
)
7575
}
7676

tasks/server-tests/bothServer.test.mts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ describe('rw serve', () => {
2020
--version Show version number [boolean]
2121
--cwd Working directory to use (where
2222
\`redwood.toml\` is located)
23-
--add-env-files Load additional .env files. Values
23+
--load-env-files Load additional .env files. Values
2424
defined in files specified later
2525
override earlier ones. [array]
2626
--telemetry Whether to send anonymous usage
@@ -68,7 +68,7 @@ describe('rw serve', () => {
6868
--version Show version number [boolean]
6969
--cwd Working directory to use (where
7070
\`redwood.toml\` is located)
71-
--add-env-files Load additional .env files. Values
71+
--load-env-files Load additional .env files. Values
7272
defined in files specified later
7373
override earlier ones. [array]
7474
--telemetry Whether to send anonymous usage

0 commit comments

Comments
 (0)