@modern-js/server 1.5.0-alpha.0 → 1.5.1
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 +32 -15
- package/dist/js/modern/dev-tools/watcher/index.js +30 -3
- package/dist/js/modern/server/dev-server.js +20 -11
- package/dist/js/node/dev-tools/watcher/index.js +36 -4
- package/dist/js/node/server/dev-server.js +24 -11
- package/dist/types/dev-tools/watcher/index.d.ts +23 -1
- package/dist/types/server/dev-server.d.ts +4 -1
- package/package.json +9 -9
package/CHANGELOG.md
CHANGED
|
@@ -1,26 +1,43 @@
|
|
|
1
1
|
# @modern-js/server
|
|
2
2
|
|
|
3
|
-
## 1.5.
|
|
3
|
+
## 1.5.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- a27ab8d: feat: add onApiChange hook for bff hot reload
|
|
8
|
+
feat: 为 BFF 热更新优化,添加 onApiChange 钩子
|
|
9
|
+
- Updated dependencies [b74b0b6]
|
|
10
|
+
- Updated dependencies [7b902b3]
|
|
11
|
+
- Updated dependencies [3d64b2f]
|
|
12
|
+
- Updated dependencies [8b2aa56]
|
|
13
|
+
- Updated dependencies [3e4a34f]
|
|
14
|
+
- Updated dependencies [33cebd2]
|
|
15
|
+
- @modern-js/webpack@1.12.0
|
|
16
|
+
- @modern-js/prod-server@1.2.0
|
|
17
|
+
- @modern-js/server-utils@1.2.11
|
|
18
|
+
- @modern-js/utils@1.7.12
|
|
19
|
+
|
|
20
|
+
## 1.5.0
|
|
4
21
|
|
|
5
22
|
### Minor Changes
|
|
6
23
|
|
|
7
|
-
-
|
|
24
|
+
- 77a8e9e: feat: support bff operators
|
|
8
25
|
|
|
9
26
|
### Patch Changes
|
|
10
27
|
|
|
11
|
-
-
|
|
12
|
-
- Updated dependencies [
|
|
13
|
-
- Updated dependencies [
|
|
14
|
-
- Updated dependencies [
|
|
15
|
-
- Updated dependencies [
|
|
16
|
-
- Updated dependencies [
|
|
17
|
-
- Updated dependencies [
|
|
18
|
-
- Updated dependencies [
|
|
19
|
-
|
|
20
|
-
- @modern-js/webpack@1.11.3
|
|
21
|
-
- @modern-js/prod-server@1.1.9
|
|
22
|
-
- @modern-js/
|
|
23
|
-
- @modern-js/server-utils@1.2.
|
|
28
|
+
- d9564f2: feat: add watchOptions for server watcher
|
|
29
|
+
- Updated dependencies [550e2bd]
|
|
30
|
+
- Updated dependencies [87eb9f8]
|
|
31
|
+
- Updated dependencies [2b06fe3]
|
|
32
|
+
- Updated dependencies [3050acc]
|
|
33
|
+
- Updated dependencies [f29e9ba]
|
|
34
|
+
- Updated dependencies [2dacc89]
|
|
35
|
+
- Updated dependencies [338496c]
|
|
36
|
+
- Updated dependencies [a90bc96]
|
|
37
|
+
- @modern-js/webpack@1.11.3
|
|
38
|
+
- @modern-js/prod-server@1.1.9
|
|
39
|
+
- @modern-js/utils@1.7.9
|
|
40
|
+
- @modern-js/server-utils@1.2.11
|
|
24
41
|
|
|
25
42
|
## 1.4.21
|
|
26
43
|
|
|
@@ -1,9 +1,18 @@
|
|
|
1
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
2
|
+
|
|
3
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
|
+
|
|
1
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; }
|
|
2
6
|
|
|
3
7
|
import path from 'path';
|
|
4
8
|
import { fs, chokidar } from '@modern-js/utils';
|
|
5
9
|
import { DependencyTree } from "./dependency-tree";
|
|
6
10
|
import { StatsCache } from "./stats-cache";
|
|
11
|
+
export const defaultWatchOptions = {
|
|
12
|
+
// 初始化的时候不触发 add、addDir 事件
|
|
13
|
+
ignoreInitial: true,
|
|
14
|
+
ignored: /api\/typings\/.*/
|
|
15
|
+
};
|
|
7
16
|
export const getWatchedFiles = watcher => {
|
|
8
17
|
const watched = watcher.getWatched();
|
|
9
18
|
const files = [];
|
|
@@ -14,6 +23,24 @@ export const getWatchedFiles = watcher => {
|
|
|
14
23
|
});
|
|
15
24
|
return files;
|
|
16
25
|
};
|
|
26
|
+
export const mergeWatchOptions = options => {
|
|
27
|
+
const watchOptions = _objectSpread({}, options);
|
|
28
|
+
|
|
29
|
+
if (watchOptions) {
|
|
30
|
+
const {
|
|
31
|
+
ignored
|
|
32
|
+
} = watchOptions;
|
|
33
|
+
const finalIgnored = ignored ? [defaultWatchOptions.ignored, ...(Array.isArray(ignored) ? ignored : [ignored])] : ignored;
|
|
34
|
+
|
|
35
|
+
if (finalIgnored) {
|
|
36
|
+
watchOptions.ignored = finalIgnored;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const finalWatchOptions = _objectSpread(_objectSpread({}, defaultWatchOptions), watchOptions);
|
|
41
|
+
|
|
42
|
+
return finalWatchOptions;
|
|
43
|
+
};
|
|
17
44
|
export default class Watcher {
|
|
18
45
|
constructor() {
|
|
19
46
|
_defineProperty(this, "dependencyTree", null);
|
|
@@ -32,18 +59,18 @@ export default class Watcher {
|
|
|
32
59
|
watcher.on('change', changed => {
|
|
33
60
|
if (!fs.existsSync(changed) || cache.isDiff(changed)) {
|
|
34
61
|
cache.refresh(changed);
|
|
35
|
-
callback(changed);
|
|
62
|
+
callback(changed, 'change');
|
|
36
63
|
}
|
|
37
64
|
});
|
|
38
65
|
watcher.on('add', changed => {
|
|
39
66
|
if (!cache.has(changed)) {
|
|
40
67
|
cache.add([changed]);
|
|
41
|
-
callback(changed);
|
|
68
|
+
callback(changed, 'add');
|
|
42
69
|
}
|
|
43
70
|
});
|
|
44
71
|
watcher.on('unlink', changed => {
|
|
45
72
|
cache.del(changed);
|
|
46
|
-
callback(changed);
|
|
73
|
+
callback(changed, 'unlink');
|
|
47
74
|
});
|
|
48
75
|
this.watcher = watcher;
|
|
49
76
|
}
|
|
@@ -15,7 +15,7 @@ import { createMockHandler } from "../dev-tools/mock";
|
|
|
15
15
|
import SocketServer from "../dev-tools/socket-server";
|
|
16
16
|
import DevServerPlugin from "../dev-tools/dev-server-plugin";
|
|
17
17
|
import { enableRegister } from "../dev-tools/babel/register";
|
|
18
|
-
import Watcher from "../dev-tools/watcher";
|
|
18
|
+
import Watcher, { mergeWatchOptions } from "../dev-tools/watcher";
|
|
19
19
|
export class ModernDevServer extends ModernServer {
|
|
20
20
|
constructor(options) {
|
|
21
21
|
super(options); // dev server should work in pwd
|
|
@@ -195,7 +195,8 @@ export class ModernDevServer extends ModernServer {
|
|
|
195
195
|
}
|
|
196
196
|
|
|
197
197
|
onServerChange({
|
|
198
|
-
filepath
|
|
198
|
+
filepath,
|
|
199
|
+
event
|
|
199
200
|
}) {
|
|
200
201
|
const {
|
|
201
202
|
pwd
|
|
@@ -212,9 +213,19 @@ export class ModernDevServer extends ModernServer {
|
|
|
212
213
|
});
|
|
213
214
|
} else {
|
|
214
215
|
try {
|
|
215
|
-
|
|
216
|
-
filepath
|
|
217
|
-
|
|
216
|
+
const success = this.runner.onApiChange([{
|
|
217
|
+
filename: filepath,
|
|
218
|
+
event
|
|
219
|
+
}]); // onApiChange 钩子被调用,且返回 true,则表示无需重新编译
|
|
220
|
+
// onApiChange 的类型是 WaterFall,WaterFall 钩子的返回值类型目前有问题
|
|
221
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
222
|
+
// @ts-expect-error
|
|
223
|
+
|
|
224
|
+
if (success !== true) {
|
|
225
|
+
super.onServerChange({
|
|
226
|
+
filepath
|
|
227
|
+
});
|
|
228
|
+
}
|
|
218
229
|
} catch (e) {
|
|
219
230
|
this.logger.error(e);
|
|
220
231
|
}
|
|
@@ -349,19 +360,17 @@ export class ModernDevServer extends ModernServer {
|
|
|
349
360
|
mock
|
|
350
361
|
} = AGGRED_DIR;
|
|
351
362
|
const defaultWatched = [`${mock}/**/*`, `${SERVER_DIR}/**/*`, `${API_DIR}/**`, `${SHARED_DIR}/**/*`];
|
|
363
|
+
const watchOptions = mergeWatchOptions(this.conf.server.watchOptions);
|
|
352
364
|
const defaultWatchedPaths = defaultWatched.map(p => path.normalize(path.join(pwd, p)));
|
|
353
365
|
const watcher = new Watcher();
|
|
354
366
|
watcher.createDepTree(); // 监听文件变动,如果有变动则给 client,也就是 start 启动的插件发消息
|
|
355
367
|
|
|
356
|
-
watcher.listen(defaultWatchedPaths, {
|
|
357
|
-
// 初始化的时候不触发 add、addDir 事件
|
|
358
|
-
ignoreInitial: true,
|
|
359
|
-
ignored: /api\/typings\/.*/
|
|
360
|
-
}, filepath => {
|
|
368
|
+
watcher.listen(defaultWatchedPaths, watchOptions, (filepath, event) => {
|
|
361
369
|
watcher.updateDepTree();
|
|
362
370
|
watcher.cleanDepCache(filepath);
|
|
363
371
|
this.onServerChange({
|
|
364
|
-
filepath
|
|
372
|
+
filepath,
|
|
373
|
+
event
|
|
365
374
|
});
|
|
366
375
|
});
|
|
367
376
|
this.watcher = watcher;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.getWatchedFiles = exports.default = void 0;
|
|
6
|
+
exports.mergeWatchOptions = exports.getWatchedFiles = exports.defaultWatchOptions = exports.default = void 0;
|
|
7
7
|
|
|
8
8
|
var _path = _interopRequireDefault(require("path"));
|
|
9
9
|
|
|
@@ -15,8 +15,19 @@ var _statsCache = require("./stats-cache");
|
|
|
15
15
|
|
|
16
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
17
|
|
|
18
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
19
|
+
|
|
20
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
21
|
+
|
|
18
22
|
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; }
|
|
19
23
|
|
|
24
|
+
const defaultWatchOptions = {
|
|
25
|
+
// 初始化的时候不触发 add、addDir 事件
|
|
26
|
+
ignoreInitial: true,
|
|
27
|
+
ignored: /api\/typings\/.*/
|
|
28
|
+
};
|
|
29
|
+
exports.defaultWatchOptions = defaultWatchOptions;
|
|
30
|
+
|
|
20
31
|
const getWatchedFiles = watcher => {
|
|
21
32
|
const watched = watcher.getWatched();
|
|
22
33
|
const files = [];
|
|
@@ -30,6 +41,27 @@ const getWatchedFiles = watcher => {
|
|
|
30
41
|
|
|
31
42
|
exports.getWatchedFiles = getWatchedFiles;
|
|
32
43
|
|
|
44
|
+
const mergeWatchOptions = options => {
|
|
45
|
+
const watchOptions = _objectSpread({}, options);
|
|
46
|
+
|
|
47
|
+
if (watchOptions) {
|
|
48
|
+
const {
|
|
49
|
+
ignored
|
|
50
|
+
} = watchOptions;
|
|
51
|
+
const finalIgnored = ignored ? [defaultWatchOptions.ignored, ...(Array.isArray(ignored) ? ignored : [ignored])] : ignored;
|
|
52
|
+
|
|
53
|
+
if (finalIgnored) {
|
|
54
|
+
watchOptions.ignored = finalIgnored;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const finalWatchOptions = _objectSpread(_objectSpread({}, defaultWatchOptions), watchOptions);
|
|
59
|
+
|
|
60
|
+
return finalWatchOptions;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
exports.mergeWatchOptions = mergeWatchOptions;
|
|
64
|
+
|
|
33
65
|
class Watcher {
|
|
34
66
|
constructor() {
|
|
35
67
|
_defineProperty(this, "dependencyTree", null);
|
|
@@ -50,18 +82,18 @@ class Watcher {
|
|
|
50
82
|
watcher.on('change', changed => {
|
|
51
83
|
if (!_utils.fs.existsSync(changed) || cache.isDiff(changed)) {
|
|
52
84
|
cache.refresh(changed);
|
|
53
|
-
callback(changed);
|
|
85
|
+
callback(changed, 'change');
|
|
54
86
|
}
|
|
55
87
|
});
|
|
56
88
|
watcher.on('add', changed => {
|
|
57
89
|
if (!cache.has(changed)) {
|
|
58
90
|
cache.add([changed]);
|
|
59
|
-
callback(changed);
|
|
91
|
+
callback(changed, 'add');
|
|
60
92
|
}
|
|
61
93
|
});
|
|
62
94
|
watcher.on('unlink', changed => {
|
|
63
95
|
cache.del(changed);
|
|
64
|
-
callback(changed);
|
|
96
|
+
callback(changed, 'unlink');
|
|
65
97
|
});
|
|
66
98
|
this.watcher = watcher;
|
|
67
99
|
}
|
|
@@ -27,7 +27,11 @@ var _devServerPlugin = _interopRequireDefault(require("../dev-tools/dev-server-p
|
|
|
27
27
|
|
|
28
28
|
var _register = require("../dev-tools/babel/register");
|
|
29
29
|
|
|
30
|
-
var _watcher =
|
|
30
|
+
var _watcher = _interopRequireWildcard(require("../dev-tools/watcher"));
|
|
31
|
+
|
|
32
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
33
|
+
|
|
34
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
31
35
|
|
|
32
36
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
33
37
|
|
|
@@ -216,7 +220,8 @@ class ModernDevServer extends _prodServer.ModernServer {
|
|
|
216
220
|
}
|
|
217
221
|
|
|
218
222
|
onServerChange({
|
|
219
|
-
filepath
|
|
223
|
+
filepath,
|
|
224
|
+
event
|
|
220
225
|
}) {
|
|
221
226
|
const {
|
|
222
227
|
pwd
|
|
@@ -235,9 +240,19 @@ class ModernDevServer extends _prodServer.ModernServer {
|
|
|
235
240
|
});
|
|
236
241
|
} else {
|
|
237
242
|
try {
|
|
238
|
-
|
|
239
|
-
filepath
|
|
240
|
-
|
|
243
|
+
const success = this.runner.onApiChange([{
|
|
244
|
+
filename: filepath,
|
|
245
|
+
event
|
|
246
|
+
}]); // onApiChange 钩子被调用,且返回 true,则表示无需重新编译
|
|
247
|
+
// onApiChange 的类型是 WaterFall,WaterFall 钩子的返回值类型目前有问题
|
|
248
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
249
|
+
// @ts-expect-error
|
|
250
|
+
|
|
251
|
+
if (success !== true) {
|
|
252
|
+
super.onServerChange({
|
|
253
|
+
filepath
|
|
254
|
+
});
|
|
255
|
+
}
|
|
241
256
|
} catch (e) {
|
|
242
257
|
this.logger.error(e);
|
|
243
258
|
}
|
|
@@ -372,19 +387,17 @@ class ModernDevServer extends _prodServer.ModernServer {
|
|
|
372
387
|
mock
|
|
373
388
|
} = _prodServer.AGGRED_DIR;
|
|
374
389
|
const defaultWatched = [`${mock}/**/*`, `${_utils.SERVER_DIR}/**/*`, `${_utils.API_DIR}/**`, `${_utils.SHARED_DIR}/**/*`];
|
|
390
|
+
const watchOptions = (0, _watcher.mergeWatchOptions)(this.conf.server.watchOptions);
|
|
375
391
|
const defaultWatchedPaths = defaultWatched.map(p => _path.default.normalize(_path.default.join(pwd, p)));
|
|
376
392
|
const watcher = new _watcher.default();
|
|
377
393
|
watcher.createDepTree(); // 监听文件变动,如果有变动则给 client,也就是 start 启动的插件发消息
|
|
378
394
|
|
|
379
|
-
watcher.listen(defaultWatchedPaths, {
|
|
380
|
-
// 初始化的时候不触发 add、addDir 事件
|
|
381
|
-
ignoreInitial: true,
|
|
382
|
-
ignored: /api\/typings\/.*/
|
|
383
|
-
}, filepath => {
|
|
395
|
+
watcher.listen(defaultWatchedPaths, watchOptions, (filepath, event) => {
|
|
384
396
|
watcher.updateDepTree();
|
|
385
397
|
watcher.cleanDepCache(filepath);
|
|
386
398
|
this.onServerChange({
|
|
387
|
-
filepath
|
|
399
|
+
filepath,
|
|
400
|
+
event
|
|
388
401
|
});
|
|
389
402
|
});
|
|
390
403
|
this.watcher = watcher;
|
|
@@ -1,9 +1,31 @@
|
|
|
1
1
|
import { FSWatcher, WatchOptions } from '@modern-js/utils';
|
|
2
|
+
export declare type WatchEvent = 'add' | 'change' | 'unlink';
|
|
3
|
+
export declare const defaultWatchOptions: {
|
|
4
|
+
ignoreInitial: boolean;
|
|
5
|
+
ignored: RegExp;
|
|
6
|
+
};
|
|
2
7
|
export declare const getWatchedFiles: (watcher: FSWatcher) => string[];
|
|
8
|
+
export declare const mergeWatchOptions: (options?: WatchOptions) => {
|
|
9
|
+
persistent?: boolean | undefined;
|
|
10
|
+
ignored: import("@modern-js/utils/compiled/chokidar/anymatch").Matcher;
|
|
11
|
+
ignoreInitial: boolean;
|
|
12
|
+
followSymlinks?: boolean | undefined;
|
|
13
|
+
cwd?: string | undefined;
|
|
14
|
+
disableGlobbing?: boolean | undefined;
|
|
15
|
+
usePolling?: boolean | undefined;
|
|
16
|
+
useFsEvents?: boolean | undefined;
|
|
17
|
+
alwaysStat?: boolean | undefined;
|
|
18
|
+
depth?: number | undefined;
|
|
19
|
+
interval?: number | undefined;
|
|
20
|
+
binaryInterval?: number | undefined;
|
|
21
|
+
ignorePermissionErrors?: boolean | undefined;
|
|
22
|
+
atomic?: number | boolean | undefined;
|
|
23
|
+
awaitWriteFinish?: boolean | import("@modern-js/utils/compiled/chokidar").AwaitWriteFinishOptions | undefined;
|
|
24
|
+
};
|
|
3
25
|
export default class Watcher {
|
|
4
26
|
private dependencyTree;
|
|
5
27
|
private watcher;
|
|
6
|
-
listen(files: string[], options: WatchOptions, callback: (changed: string) => void): void;
|
|
28
|
+
listen(files: string[], options: WatchOptions, callback: (changed: string, event: WatchEvent) => void): void;
|
|
7
29
|
createDepTree(): void;
|
|
8
30
|
updateDepTree(): void;
|
|
9
31
|
cleanDepCache(filepath: string): void;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
/// <reference types="node" />
|
|
3
3
|
import http, { Server, IncomingMessage, ServerResponse } from 'http';
|
|
4
4
|
import { ServerHookRunner, ModernServer, BuildOptions } from '@modern-js/prod-server';
|
|
5
|
+
import { WatchEvent } from '../dev-tools/watcher';
|
|
5
6
|
import { ModernDevServerOptions } from '../types';
|
|
6
7
|
export declare class ModernDevServer extends ModernServer {
|
|
7
8
|
private mockHandler;
|
|
@@ -19,9 +20,11 @@ export declare class ModernDevServer extends ModernServer {
|
|
|
19
20
|
createHTTPServer(handler: (req: IncomingMessage, res: ServerResponse, next?: () => void) => void): Promise<http.Server | import("https").Server>;
|
|
20
21
|
protected warmupSSRBundle(): void;
|
|
21
22
|
protected onServerChange({
|
|
22
|
-
filepath
|
|
23
|
+
filepath,
|
|
24
|
+
event
|
|
23
25
|
}: {
|
|
24
26
|
filepath: string;
|
|
27
|
+
event: WatchEvent;
|
|
25
28
|
}): void;
|
|
26
29
|
private setupCompiler;
|
|
27
30
|
private setupDevServerPlugin;
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"modern",
|
|
12
12
|
"modern.js"
|
|
13
13
|
],
|
|
14
|
-
"version": "1.5.
|
|
14
|
+
"version": "1.5.1",
|
|
15
15
|
"jsnext:source": "./src/index.ts",
|
|
16
16
|
"types": "./dist/types/index.d.ts",
|
|
17
17
|
"main": "./dist/js/node/index.js",
|
|
@@ -30,20 +30,20 @@
|
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@babel/core": "^7.18.0",
|
|
32
32
|
"@babel/register": "^7.17.7",
|
|
33
|
-
"@modern-js/hmr-client": "^1.2.
|
|
34
|
-
"@modern-js/prod-server": "^1.
|
|
35
|
-
"@modern-js/server-utils": "^1.2.
|
|
36
|
-
"@modern-js/webpack": "^1.
|
|
37
|
-
"@modern-js/utils": "^1.7.
|
|
33
|
+
"@modern-js/hmr-client": "^1.2.8",
|
|
34
|
+
"@modern-js/prod-server": "^1.2.0",
|
|
35
|
+
"@modern-js/server-utils": "^1.2.11",
|
|
36
|
+
"@modern-js/webpack": "^1.12.0",
|
|
37
|
+
"@modern-js/utils": "^1.7.12",
|
|
38
38
|
"devcert": "^1.2.2",
|
|
39
39
|
"minimatch": "^3.0.4",
|
|
40
40
|
"path-to-regexp": "^6.2.0",
|
|
41
41
|
"ws": "^8.2.0"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
|
-
"@modern-js/core": "1.
|
|
45
|
-
"@modern-js/server-core": "1.4.
|
|
46
|
-
"@modern-js/types": "1.
|
|
44
|
+
"@modern-js/core": "1.13.0",
|
|
45
|
+
"@modern-js/server-core": "1.4.1",
|
|
46
|
+
"@modern-js/types": "1.6.0",
|
|
47
47
|
"@scripts/build": "0.0.0",
|
|
48
48
|
"@scripts/jest-config": "0.0.0",
|
|
49
49
|
"@types/jest": "^27",
|