Skip to content

Commit 2eb0076

Browse files
authored
feat: support options.env to specific server env (#199)
1 parent c988595 commit 2eb0076

3 files changed

Lines changed: 14 additions & 2 deletions

File tree

lib/egg.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ class EggCore extends KoaApplication {
121121
plugins: options.plugins,
122122
logger: this.console,
123123
serverScope: options.serverScope,
124+
env: options.env,
124125
});
125126
}
126127

lib/loader/egg_loader.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,10 +103,10 @@ class EggLoader {
103103
* @since 1.0.0
104104
*/
105105
getServerEnv() {
106-
let serverEnv;
106+
let serverEnv = this.options.env;
107107

108108
const envPath = path.join(this.options.baseDir, 'config/env');
109-
if (fs.existsSync(envPath)) {
109+
if (!serverEnv && fs.existsSync(envPath)) {
110110
serverEnv = fs.readFileSync(envPath, 'utf8').trim();
111111
}
112112

test/loader/get_server_env.test.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,4 +43,15 @@ describe('test/loader/get_server_env.test.js', function() {
4343
app = utils.createApp('serverenv-file');
4444
assert(app.loader.serverEnv === 'prod');
4545
});
46+
47+
it('should get from options.env', function() {
48+
app = utils.createApp('serverenv', { env: 'prod' });
49+
assert(app.loader.serverEnv === 'prod');
50+
});
51+
52+
it('should use options.env first', function() {
53+
mm(process.env, 'EGG_SERVER_ENV', 'test');
54+
app = utils.createApp('serverenv-file', { env: 'development' });
55+
assert(app.loader.serverEnv === 'development');
56+
});
4657
});

0 commit comments

Comments
 (0)