@modern-js/prod-server 1.1.10-beta.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/dist/js/modern/server/index.js +29 -15
- package/dist/js/node/server/index.js +32 -15
- package/dist/types/server/index.d.ts +2 -0
- package/package.json +6 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @modern-js/prod-server
|
|
2
2
|
|
|
3
|
+
## 1.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 3d64b2f: feat: prod-server supports that load server env from .env.\*
|
|
8
|
+
|
|
9
|
+
feat: prod-server 支持从 .env.\* 文件加载服务器环境变量
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- 7b902b3: feat: support ListenOptions for prod-server
|
|
14
|
+
|
|
15
|
+
feat: server 支持传入 listernOptions 参数
|
|
16
|
+
|
|
17
|
+
- Updated dependencies [a27ab8d]
|
|
18
|
+
- @modern-js/server-core@1.4.1
|
|
19
|
+
- @modern-js/utils@1.7.12
|
|
20
|
+
|
|
3
21
|
## 1.1.9
|
|
4
22
|
|
|
5
23
|
### Patch Changes
|
|
@@ -5,8 +5,9 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
5
5
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
6
|
|
|
7
7
|
import path from 'path';
|
|
8
|
+
import fs from 'fs';
|
|
9
|
+
import { Logger, SHARED_DIR, OUTPUT_CONFIG_FILE, dotenv, dotenvExpand } from '@modern-js/utils';
|
|
8
10
|
import { serverManager, AppContext, ConfigContext, loadPlugins } from '@modern-js/server-core';
|
|
9
|
-
import { Logger, SHARED_DIR, OUTPUT_CONFIG_FILE } from '@modern-js/utils';
|
|
10
11
|
import { metrics as defaultMetrics } from "../libs/metrics";
|
|
11
12
|
import { loadConfig, getServerConfigPath, requireConfig } from "../libs/loadConfig";
|
|
12
13
|
import { debug } from "../utils";
|
|
@@ -34,6 +35,7 @@ export class Server {
|
|
|
34
35
|
}
|
|
35
36
|
/**
|
|
36
37
|
* 初始化顺序
|
|
38
|
+
* - 读取 .env.{process.env.MODERN_ENV} 文件,加载环境变量
|
|
37
39
|
* - 获取 server runtime config
|
|
38
40
|
* - 设置 context
|
|
39
41
|
* - 创建 hooksRunner
|
|
@@ -51,6 +53,7 @@ export class Server {
|
|
|
51
53
|
const {
|
|
52
54
|
options
|
|
53
55
|
} = this;
|
|
56
|
+
this.loadServerEnv(options);
|
|
54
57
|
this.initServerConfig(options);
|
|
55
58
|
await this.injectContext(this.runner, options); // initialize server runner
|
|
56
59
|
|
|
@@ -128,22 +131,18 @@ export class Server {
|
|
|
128
131
|
}
|
|
129
132
|
|
|
130
133
|
listen(options, listener) {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
}
|
|
134
|
+
const callback = () => {
|
|
135
|
+
if (listener) {
|
|
136
|
+
listener();
|
|
137
|
+
}
|
|
136
138
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
} else {
|
|
140
|
-
this.app.listen(process.env.PORT || options || 8080, () => {
|
|
141
|
-
if (listener) {
|
|
142
|
-
listener();
|
|
143
|
-
}
|
|
139
|
+
this.server.onListening(this.app);
|
|
140
|
+
};
|
|
144
141
|
|
|
145
|
-
|
|
146
|
-
|
|
142
|
+
if (typeof options === 'object') {
|
|
143
|
+
this.app.listen(options, callback);
|
|
144
|
+
} else {
|
|
145
|
+
this.app.listen(process.env.PORT || options || 8080, callback);
|
|
147
146
|
}
|
|
148
147
|
}
|
|
149
148
|
|
|
@@ -214,4 +213,19 @@ export class Server {
|
|
|
214
213
|
};
|
|
215
214
|
}
|
|
216
215
|
|
|
216
|
+
loadServerEnv(options) {
|
|
217
|
+
const {
|
|
218
|
+
pwd: appDirectory
|
|
219
|
+
} = options;
|
|
220
|
+
const serverEnv = process.env.MODERN_ENV;
|
|
221
|
+
const serverEnvPath = path.resolve(appDirectory, `.env.${serverEnv}`);
|
|
222
|
+
|
|
223
|
+
if (serverEnv && fs.existsSync(serverEnvPath) && !fs.statSync(serverEnvPath).isDirectory()) {
|
|
224
|
+
const envConfig = dotenv.config({
|
|
225
|
+
path: serverEnvPath
|
|
226
|
+
});
|
|
227
|
+
dotenvExpand(envConfig);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
|
|
217
231
|
}
|
|
@@ -7,10 +7,12 @@ exports.Server = void 0;
|
|
|
7
7
|
|
|
8
8
|
var _path = _interopRequireDefault(require("path"));
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _fs = _interopRequireDefault(require("fs"));
|
|
11
11
|
|
|
12
12
|
var _utils = require("@modern-js/utils");
|
|
13
13
|
|
|
14
|
+
var _serverCore = require("@modern-js/server-core");
|
|
15
|
+
|
|
14
16
|
var _metrics = require("../libs/metrics");
|
|
15
17
|
|
|
16
18
|
var _loadConfig = require("../libs/loadConfig");
|
|
@@ -50,6 +52,7 @@ class Server {
|
|
|
50
52
|
}
|
|
51
53
|
/**
|
|
52
54
|
* 初始化顺序
|
|
55
|
+
* - 读取 .env.{process.env.MODERN_ENV} 文件,加载环境变量
|
|
53
56
|
* - 获取 server runtime config
|
|
54
57
|
* - 设置 context
|
|
55
58
|
* - 创建 hooksRunner
|
|
@@ -67,6 +70,7 @@ class Server {
|
|
|
67
70
|
const {
|
|
68
71
|
options
|
|
69
72
|
} = this;
|
|
73
|
+
this.loadServerEnv(options);
|
|
70
74
|
this.initServerConfig(options);
|
|
71
75
|
await this.injectContext(this.runner, options); // initialize server runner
|
|
72
76
|
|
|
@@ -148,22 +152,18 @@ class Server {
|
|
|
148
152
|
}
|
|
149
153
|
|
|
150
154
|
listen(options, listener) {
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
}
|
|
155
|
+
const callback = () => {
|
|
156
|
+
if (listener) {
|
|
157
|
+
listener();
|
|
158
|
+
}
|
|
156
159
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
} else {
|
|
160
|
-
this.app.listen(process.env.PORT || options || 8080, () => {
|
|
161
|
-
if (listener) {
|
|
162
|
-
listener();
|
|
163
|
-
}
|
|
160
|
+
this.server.onListening(this.app);
|
|
161
|
+
};
|
|
164
162
|
|
|
165
|
-
|
|
166
|
-
|
|
163
|
+
if (typeof options === 'object') {
|
|
164
|
+
this.app.listen(options, callback);
|
|
165
|
+
} else {
|
|
166
|
+
this.app.listen(process.env.PORT || options || 8080, callback);
|
|
167
167
|
}
|
|
168
168
|
}
|
|
169
169
|
|
|
@@ -237,6 +237,23 @@ class Server {
|
|
|
237
237
|
};
|
|
238
238
|
}
|
|
239
239
|
|
|
240
|
+
loadServerEnv(options) {
|
|
241
|
+
const {
|
|
242
|
+
pwd: appDirectory
|
|
243
|
+
} = options;
|
|
244
|
+
const serverEnv = process.env.MODERN_ENV;
|
|
245
|
+
|
|
246
|
+
const serverEnvPath = _path.default.resolve(appDirectory, `.env.${serverEnv}`);
|
|
247
|
+
|
|
248
|
+
if (serverEnv && _fs.default.existsSync(serverEnvPath) && !_fs.default.statSync(serverEnvPath).isDirectory()) {
|
|
249
|
+
const envConfig = _utils.dotenv.config({
|
|
250
|
+
path: serverEnvPath
|
|
251
|
+
});
|
|
252
|
+
|
|
253
|
+
(0, _utils.dotenvExpand)(envConfig);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
|
|
240
257
|
}
|
|
241
258
|
|
|
242
259
|
exports.Server = Server;
|
|
@@ -12,6 +12,7 @@ export declare class Server {
|
|
|
12
12
|
constructor(options: ModernServerOptions);
|
|
13
13
|
/**
|
|
14
14
|
* 初始化顺序
|
|
15
|
+
* - 读取 .env.{process.env.MODERN_ENV} 文件,加载环境变量
|
|
15
16
|
* - 获取 server runtime config
|
|
16
17
|
* - 设置 context
|
|
17
18
|
* - 创建 hooksRunner
|
|
@@ -46,4 +47,5 @@ export declare class Server {
|
|
|
46
47
|
private createHookRunner;
|
|
47
48
|
private injectContext;
|
|
48
49
|
private initAppContext;
|
|
50
|
+
private loadServerEnv;
|
|
49
51
|
}
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"modern",
|
|
12
12
|
"modern.js"
|
|
13
13
|
],
|
|
14
|
-
"version": "1.
|
|
14
|
+
"version": "1.2.0",
|
|
15
15
|
"jsnext:source": "./src/index.ts",
|
|
16
16
|
"types": "./dist/types/index.d.ts",
|
|
17
17
|
"main": "./dist/js/node/index.js",
|
|
@@ -28,9 +28,9 @@
|
|
|
28
28
|
}
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@modern-js/utils": "^1.7.
|
|
31
|
+
"@modern-js/utils": "^1.7.12",
|
|
32
32
|
"@babel/compat-data": "^7.17.10",
|
|
33
|
-
"@modern-js/server-core": "^1.4.
|
|
33
|
+
"@modern-js/server-core": "^1.4.1",
|
|
34
34
|
"axios": "^0.24.0",
|
|
35
35
|
"compare-versions": "^3.6.0",
|
|
36
36
|
"cookie": "^0.4.2",
|
|
@@ -43,8 +43,8 @@
|
|
|
43
43
|
"ua-parser-js": "^0.7.28"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
|
-
"@modern-js/types": "1.
|
|
47
|
-
"@modern-js/core": "1.
|
|
46
|
+
"@modern-js/types": "1.6.0",
|
|
47
|
+
"@modern-js/core": "1.13.0",
|
|
48
48
|
"@scripts/jest-config": "0.0.0",
|
|
49
49
|
"@scripts/build": "0.0.0",
|
|
50
50
|
"@types/cookie": "^0.4.1",
|
|
@@ -67,8 +67,7 @@
|
|
|
67
67
|
},
|
|
68
68
|
"publishConfig": {
|
|
69
69
|
"access": "public",
|
|
70
|
-
"registry": "https://registry.npmjs.org/"
|
|
71
|
-
"types": "./dist/types/index.d.ts"
|
|
70
|
+
"registry": "https://registry.npmjs.org/"
|
|
72
71
|
},
|
|
73
72
|
"wireit": {
|
|
74
73
|
"build": {
|