@modern-js/server 1.17.0 → 1.18.1-alpha.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 +55 -0
- package/dist/js/modern/dev-tools/{dev-server-plugin.js → dev-middleware/dev-server-plugin.js} +1 -1
- package/dist/js/modern/{hmr-client → dev-tools/dev-middleware/hmr-client}/createSocketUrl.js +0 -0
- package/dist/js/modern/{hmr-client → dev-tools/dev-middleware/hmr-client}/index.js +0 -0
- package/dist/js/modern/dev-tools/dev-middleware/index.js +138 -0
- package/dist/js/modern/dev-tools/{socket-server.js → dev-middleware/socket-server.js} +0 -0
- package/dist/js/modern/dev-tools/https/index.js +1 -1
- package/dist/js/modern/dev-tools/register/index.js +103 -0
- package/dist/js/modern/server/dev-server.js +45 -142
- package/dist/js/modern/server/index.js +1 -8
- package/dist/js/node/dev-tools/{dev-server-plugin.js → dev-middleware/dev-server-plugin.js} +1 -1
- package/dist/js/node/{hmr-client → dev-tools/dev-middleware/hmr-client}/createSocketUrl.js +0 -0
- package/dist/js/node/{hmr-client → dev-tools/dev-middleware/hmr-client}/index.js +0 -0
- package/dist/js/node/dev-tools/dev-middleware/index.js +152 -0
- package/dist/js/node/dev-tools/{socket-server.js → dev-middleware/socket-server.js} +0 -0
- package/dist/js/node/dev-tools/https/index.js +1 -1
- package/dist/js/node/dev-tools/register/index.js +120 -0
- package/dist/js/node/server/dev-server.js +46 -145
- package/dist/js/node/server/index.js +1 -9
- package/dist/types/dev-tools/{dev-server-plugin.d.ts → dev-middleware/dev-server-plugin.d.ts} +1 -1
- package/dist/types/{hmr-client → dev-tools/dev-middleware/hmr-client}/createSocketUrl.d.ts +0 -0
- package/dist/types/{hmr-client → dev-tools/dev-middleware/hmr-client}/index.d.ts +0 -0
- package/dist/types/dev-tools/dev-middleware/index.d.ts +31 -0
- package/dist/types/dev-tools/{socket-server.d.ts → dev-middleware/socket-server.d.ts} +1 -1
- package/dist/types/dev-tools/https/index.d.ts +6 -1
- package/dist/types/dev-tools/mock/getMockData.d.ts +1 -1
- package/dist/types/dev-tools/mock/index.d.ts +1 -1
- package/dist/types/dev-tools/{babel/register.d.ts → register/index.d.ts} +0 -0
- package/dist/types/index.d.ts +2 -2
- package/dist/types/server/dev-server.d.ts +6 -14
- package/dist/types/server/index.d.ts +1 -1
- package/dist/types/types.d.ts +7 -6
- package/package.json +17 -11
- package/dist/js/modern/dev-tools/babel/register.js +0 -33
- package/dist/js/modern/server/dev-server-split.js +0 -43
- package/dist/js/node/dev-tools/babel/register.js +0 -49
- package/dist/js/node/server/dev-server-split.js +0 -57
- package/dist/types/server/dev-server-split.d.ts +0 -16
|
@@ -1,23 +1,19 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node" />
|
|
3
|
-
import
|
|
3
|
+
import { IncomingMessage, Server, ServerResponse } from 'http';
|
|
4
4
|
import { ServerHookRunner, ModernServer, BuildOptions } from '@modern-js/prod-server';
|
|
5
5
|
import { WatchEvent } from '../dev-tools/watcher';
|
|
6
|
-
import { ModernDevServerOptions } from '../types';
|
|
6
|
+
import type { ModernDevServerOptions } from '../types';
|
|
7
7
|
export declare class ModernDevServer extends ModernServer {
|
|
8
8
|
private mockHandler;
|
|
9
9
|
private readonly dev;
|
|
10
|
-
private readonly
|
|
11
|
-
private socketServer;
|
|
10
|
+
private readonly devMiddleware;
|
|
12
11
|
private watcher?;
|
|
13
|
-
private devMiddleware;
|
|
14
12
|
constructor(options: ModernDevServerOptions);
|
|
15
13
|
private getDevOptions;
|
|
16
|
-
onInit(runner: ServerHookRunner): Promise<void>;
|
|
17
|
-
onClose(): Promise<void>;
|
|
14
|
+
onInit(runner: ServerHookRunner, app: Server): Promise<void>;
|
|
18
15
|
onRepack(options?: BuildOptions): void;
|
|
19
|
-
|
|
20
|
-
createHTTPServer(handler: (req: IncomingMessage, res: ServerResponse, next?: () => void) => void): Promise<http.Server | import("https").Server>;
|
|
16
|
+
createHTTPServer(handler: (req: IncomingMessage, res: ServerResponse, next?: () => void) => void): Promise<Server | import("https").Server>;
|
|
21
17
|
protected warmupSSRBundle(): void;
|
|
22
18
|
protected onServerChange({
|
|
23
19
|
filepath,
|
|
@@ -26,11 +22,7 @@ export declare class ModernDevServer extends ModernServer {
|
|
|
26
22
|
filepath: string;
|
|
27
23
|
event: WatchEvent;
|
|
28
24
|
}): void;
|
|
29
|
-
|
|
30
|
-
private isClientCompiler;
|
|
31
|
-
private setupDevServerPlugin;
|
|
32
|
-
private setupHooks;
|
|
33
|
-
private setupDevMiddleware;
|
|
25
|
+
protected createContext(req: IncomingMessage, res: ServerResponse): import("@modern-js/prod-server/src/libs/context").ModernServerContext;
|
|
34
26
|
private setupBeforeDevMiddleware;
|
|
35
27
|
private setupAfterDevMiddleware;
|
|
36
28
|
private cleanSSRCache;
|
package/dist/types/types.d.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import type webpack from 'webpack';
|
|
2
2
|
import type { ModernServerOptions } from '@modern-js/prod-server';
|
|
3
|
+
export declare type DevServerHttpsOptions = boolean | {
|
|
4
|
+
key: string;
|
|
5
|
+
cert: string;
|
|
6
|
+
};
|
|
3
7
|
export declare type DevServerOptions = {
|
|
4
8
|
client: {
|
|
5
9
|
path?: string;
|
|
@@ -15,14 +19,11 @@ export declare type DevServerOptions = {
|
|
|
15
19
|
watch: boolean;
|
|
16
20
|
hot: boolean | string;
|
|
17
21
|
liveReload: boolean;
|
|
18
|
-
https?:
|
|
19
|
-
key: string;
|
|
20
|
-
cert: string;
|
|
21
|
-
};
|
|
22
|
+
https?: DevServerHttpsOptions;
|
|
22
23
|
[propName: string]: any;
|
|
23
24
|
};
|
|
24
25
|
export declare type ExtraOptions = {
|
|
25
|
-
dev
|
|
26
|
-
compiler
|
|
26
|
+
dev: boolean | Partial<DevServerOptions>;
|
|
27
|
+
compiler: webpack.MultiCompiler | webpack.Compiler | null;
|
|
27
28
|
};
|
|
28
29
|
export declare type ModernDevServerOptions = ModernServerOptions & ExtraOptions;
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"modern",
|
|
12
12
|
"modern.js"
|
|
13
13
|
],
|
|
14
|
-
"version": "1.
|
|
14
|
+
"version": "1.18.1-alpha.0",
|
|
15
15
|
"jsnext:source": "./src/index.ts",
|
|
16
16
|
"types": "./dist/types/index.d.ts",
|
|
17
17
|
"main": "./dist/js/node/index.js",
|
|
@@ -30,28 +30,34 @@
|
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@babel/core": "^7.18.0",
|
|
32
32
|
"@babel/register": "^7.17.7",
|
|
33
|
-
"@modern-js/prod-server": "1.
|
|
34
|
-
"@modern-js/server-utils": "1.
|
|
35
|
-
"@modern-js/utils": "1.
|
|
33
|
+
"@modern-js/prod-server": "1.18.1-alpha.0",
|
|
34
|
+
"@modern-js/server-utils": "1.18.1-alpha.0",
|
|
35
|
+
"@modern-js/utils": "1.18.1-alpha.0",
|
|
36
36
|
"devcert": "^1.2.2",
|
|
37
37
|
"minimatch": "^3.0.4",
|
|
38
38
|
"path-to-regexp": "^6.2.0",
|
|
39
39
|
"ws": "^8.2.0"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@modern-js/core": "1.
|
|
43
|
-
"@modern-js/server-core": "1.
|
|
44
|
-
"@modern-js/types": "1.
|
|
45
|
-
"@scripts/build": "1.
|
|
46
|
-
"@scripts/jest-config": "1.
|
|
42
|
+
"@modern-js/core": "1.18.1-alpha.0",
|
|
43
|
+
"@modern-js/server-core": "1.18.1-alpha.0",
|
|
44
|
+
"@modern-js/types": "1.18.1-alpha.0",
|
|
45
|
+
"@scripts/build": "1.18.1-alpha.0",
|
|
46
|
+
"@scripts/jest-config": "1.18.1-alpha.0",
|
|
47
47
|
"@types/jest": "^27",
|
|
48
48
|
"@types/minimatch": "^3.0.5",
|
|
49
49
|
"@types/node": "^14",
|
|
50
50
|
"@types/ws": "^7.4.7",
|
|
51
51
|
"jest": "^27",
|
|
52
|
+
"ts-node": "^10.1.0",
|
|
53
|
+
"tsconfig-paths": "3.14.1",
|
|
52
54
|
"typescript": "^4",
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
+
"webpack": "^5.71.0",
|
|
56
|
+
"websocket": "^1"
|
|
57
|
+
},
|
|
58
|
+
"peerDependencies": {
|
|
59
|
+
"ts-node": "^10.1.0",
|
|
60
|
+
"tsconfig-paths": "3.14.1"
|
|
55
61
|
},
|
|
56
62
|
"sideEffects": false,
|
|
57
63
|
"modernConfig": {
|
|
@@ -1,33 +0,0 @@
|
|
|
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
|
-
|
|
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
|
-
|
|
7
|
-
import path from 'path';
|
|
8
|
-
import { resolveBabelConfig } from '@modern-js/server-utils';
|
|
9
|
-
const registerDirs = ['./api', './server', './config/mock', './shared'];
|
|
10
|
-
export const enableRegister = (projectRoot, config) => {
|
|
11
|
-
const TS_CONFIG_FILENAME = `tsconfig.json`;
|
|
12
|
-
const tsconfigPath = path.resolve(projectRoot, TS_CONFIG_FILENAME);
|
|
13
|
-
const babelConfig = resolveBabelConfig(projectRoot, config, {
|
|
14
|
-
tsconfigPath,
|
|
15
|
-
syntax: 'es6+',
|
|
16
|
-
type: 'commonjs'
|
|
17
|
-
});
|
|
18
|
-
return require('@babel/register')(_objectSpread(_objectSpread({}, babelConfig), {}, {
|
|
19
|
-
only: [function (filePath) {
|
|
20
|
-
// TODO: wait params
|
|
21
|
-
// FIXME: 删除hardcode,根据 AppContext 中的 metaName 设置路径
|
|
22
|
-
if (filePath.includes(`node_modules${path.sep}.modern-js`)) {
|
|
23
|
-
return true;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
return registerDirs.some(registerDir => filePath.startsWith(path.join(projectRoot, registerDir)));
|
|
27
|
-
}],
|
|
28
|
-
extensions: ['.js', '.ts'],
|
|
29
|
-
babelrc: false,
|
|
30
|
-
configFile: false,
|
|
31
|
-
root: projectRoot
|
|
32
|
-
}));
|
|
33
|
-
};
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { RUN_MODE } from '@modern-js/prod-server';
|
|
2
|
-
import { ModernDevServer } from "./dev-server";
|
|
3
|
-
export class ModernSSRDevServer extends ModernDevServer {
|
|
4
|
-
prepareAPIHandler(_m, _) {
|
|
5
|
-
return null;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
filterRoutes(routes) {
|
|
9
|
-
return routes.filter(route => route.isSSR);
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
async setupBeforeProdMiddleware() {
|
|
13
|
-
if (this.runMode === RUN_MODE.FULL) {
|
|
14
|
-
await super.setupBeforeProdMiddleware();
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
async emitRouteHook(_, _input) {
|
|
19
|
-
if (this.runMode === RUN_MODE.FULL) {
|
|
20
|
-
await super.emitRouteHook(_, _input);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
export class ModernAPIDevServer extends ModernDevServer {
|
|
26
|
-
prepareWebHandler(_) {
|
|
27
|
-
return null;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
filterRoutes(routes) {
|
|
31
|
-
return routes.filter(route => route.isApi);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
async setupBeforeProdMiddleware() {
|
|
35
|
-
if (this.runMode === RUN_MODE.FULL) {
|
|
36
|
-
await super.setupBeforeProdMiddleware();
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
async emitRouteHook(_, _input) {// empty
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.enableRegister = void 0;
|
|
7
|
-
|
|
8
|
-
var _path = _interopRequireDefault(require("path"));
|
|
9
|
-
|
|
10
|
-
var _serverUtils = require("@modern-js/server-utils");
|
|
11
|
-
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
|
-
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; }
|
|
15
|
-
|
|
16
|
-
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; }
|
|
17
|
-
|
|
18
|
-
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
|
-
|
|
20
|
-
const registerDirs = ['./api', './server', './config/mock', './shared'];
|
|
21
|
-
|
|
22
|
-
const enableRegister = (projectRoot, config) => {
|
|
23
|
-
const TS_CONFIG_FILENAME = `tsconfig.json`;
|
|
24
|
-
|
|
25
|
-
const tsconfigPath = _path.default.resolve(projectRoot, TS_CONFIG_FILENAME);
|
|
26
|
-
|
|
27
|
-
const babelConfig = (0, _serverUtils.resolveBabelConfig)(projectRoot, config, {
|
|
28
|
-
tsconfigPath,
|
|
29
|
-
syntax: 'es6+',
|
|
30
|
-
type: 'commonjs'
|
|
31
|
-
});
|
|
32
|
-
return require('@babel/register')(_objectSpread(_objectSpread({}, babelConfig), {}, {
|
|
33
|
-
only: [function (filePath) {
|
|
34
|
-
// TODO: wait params
|
|
35
|
-
// FIXME: 删除hardcode,根据 AppContext 中的 metaName 设置路径
|
|
36
|
-
if (filePath.includes(`node_modules${_path.default.sep}.modern-js`)) {
|
|
37
|
-
return true;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
return registerDirs.some(registerDir => filePath.startsWith(_path.default.join(projectRoot, registerDir)));
|
|
41
|
-
}],
|
|
42
|
-
extensions: ['.js', '.ts'],
|
|
43
|
-
babelrc: false,
|
|
44
|
-
configFile: false,
|
|
45
|
-
root: projectRoot
|
|
46
|
-
}));
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
exports.enableRegister = enableRegister;
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.ModernSSRDevServer = exports.ModernAPIDevServer = void 0;
|
|
7
|
-
|
|
8
|
-
var _prodServer = require("@modern-js/prod-server");
|
|
9
|
-
|
|
10
|
-
var _devServer = require("./dev-server");
|
|
11
|
-
|
|
12
|
-
class ModernSSRDevServer extends _devServer.ModernDevServer {
|
|
13
|
-
prepareAPIHandler(_m, _) {
|
|
14
|
-
return null;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
filterRoutes(routes) {
|
|
18
|
-
return routes.filter(route => route.isSSR);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
async setupBeforeProdMiddleware() {
|
|
22
|
-
if (this.runMode === _prodServer.RUN_MODE.FULL) {
|
|
23
|
-
await super.setupBeforeProdMiddleware();
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
async emitRouteHook(_, _input) {
|
|
28
|
-
if (this.runMode === _prodServer.RUN_MODE.FULL) {
|
|
29
|
-
await super.emitRouteHook(_, _input);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
exports.ModernSSRDevServer = ModernSSRDevServer;
|
|
36
|
-
|
|
37
|
-
class ModernAPIDevServer extends _devServer.ModernDevServer {
|
|
38
|
-
prepareWebHandler(_) {
|
|
39
|
-
return null;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
filterRoutes(routes) {
|
|
43
|
-
return routes.filter(route => route.isApi);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
async setupBeforeProdMiddleware() {
|
|
47
|
-
if (this.runMode === _prodServer.RUN_MODE.FULL) {
|
|
48
|
-
await super.setupBeforeProdMiddleware();
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
async emitRouteHook(_, _input) {// empty
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
exports.ModernAPIDevServer = ModernAPIDevServer;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { APIServerStartInput } from '@modern-js/server-core';
|
|
2
|
-
import { ServerRoute as ModernRouteInterface } from '@modern-js/types';
|
|
3
|
-
import { ApiServerMode, HookNames } from '@modern-js/prod-server';
|
|
4
|
-
import { ModernDevServer } from './dev-server';
|
|
5
|
-
export declare class ModernSSRDevServer extends ModernDevServer {
|
|
6
|
-
protected prepareAPIHandler(_m: ApiServerMode, _: APIServerStartInput['config']): any;
|
|
7
|
-
protected filterRoutes(routes: ModernRouteInterface[]): ModernRouteInterface[];
|
|
8
|
-
protected setupBeforeProdMiddleware(): Promise<void>;
|
|
9
|
-
protected emitRouteHook(_: HookNames, _input: any): Promise<void>;
|
|
10
|
-
}
|
|
11
|
-
export declare class ModernAPIDevServer extends ModernDevServer {
|
|
12
|
-
protected prepareWebHandler(_: APIServerStartInput['config']): any;
|
|
13
|
-
protected filterRoutes(routes: ModernRouteInterface[]): ModernRouteInterface[];
|
|
14
|
-
protected setupBeforeProdMiddleware(): Promise<void>;
|
|
15
|
-
protected emitRouteHook(_: HookNames, _input: any): Promise<void>;
|
|
16
|
-
}
|