Skip to content

Commit e1c09be

Browse files
authored
fix: migrate webpack-dev-server to 4.0.0 (#54)
* fix: migrate webpack-dev-server to 4.0.0 * fix: types of webpack-dev-server * chore: lint * chore: remove useless code
1 parent 9e8e9e2 commit e1c09be

File tree

5 files changed

+17
-25
lines changed

5 files changed

+17
-25
lines changed

.eslintrc.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,12 @@ const jsRules = deepmerge(eslint, {
1616
const tsRules = deepmerge(tslint, {
1717
rules: {
1818
...commonRules,
19-
'@typescript-eslint/explicit-function-return-type': ['warn', {
20-
allowTypedFunctionExpressions: true,
21-
}],
19+
'@typescript-eslint/explicit-function-return-type': [
20+
'warn',
21+
{
22+
allowTypedFunctionExpressions: true,
23+
},
24+
],
2225
},
2326
});
2427

packages/build-scripts/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,12 +51,12 @@
5151
"@types/semver": "^6.2.0",
5252
"@types/webpack": "^4.41.30",
5353
"@types/webpack-chain": "^5.2.0",
54-
"@types/webpack-dev-server": "^3.11.5",
54+
"@types/webpack-dev-server": "^4.0.0",
5555
"jest": "^27.0.6",
5656
"package-json": "^6.5.0",
5757
"ts-jest": "^27.0.3",
5858
"typescript": "^3.7.2",
5959
"webpack": "^5.0.0",
60-
"webpack-dev-server": "^3.7.2"
60+
"webpack-dev-server": "^4.0.0"
6161
}
6262
}

packages/build-scripts/src/commands/start.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import WebpackService from '../service/WebpackService';
22
import { IContextOptions, ITaskConfig } from '../core/Context';
3-
import WebpackDevServer = require('webpack-dev-server');
3+
import type WebpackDevServer from 'webpack-dev-server';
44

55
type StartResult = void | ITaskConfig[] | WebpackDevServer;
66

packages/build-scripts/src/core/Context.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import webpack, { MultiStats } from 'webpack';
55
import { Logger } from 'npmlog';
66
import { AggregatedResult } from '@jest/test-result';
77
import { GlobalConfig } from '@jest/types/build/Config';
8+
import type WebpackDevServer from 'webpack-dev-server';
89
import {
910
IHash,
1011
Json,
@@ -20,7 +21,6 @@ import assert = require('assert');
2021
import _ = require('lodash');
2122
import camelCase = require('camelcase');
2223
import WebpackChain = require('webpack-chain');
23-
import WebpackDevServer = require('webpack-dev-server');
2424
import deepmerge = require('deepmerge');
2525
import log = require('../utils/log');
2626

packages/build-scripts/src/service/start.ts

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ import chalk from 'chalk';
22
import { WebpackOptionsNormalized } from 'webpack';
33
import Context, { ITaskConfig } from '../core/Context';
44
import webpackStats from '../utils/webpackStats';
5+
import type WebpackDevServer from 'webpack-dev-server';
56
import { IRunOptions } from '../types';
67
import deepmerge = require('deepmerge');
7-
import WebpackDevServer = require('webpack-dev-server');
88
import prepareURLs = require('../utils/prepareURLs');
99
import log = require('../utils/log');
1010

11-
type DevServer = Record<string, any>;
11+
type DevServerConfig = Record<string, any>;
1212

1313
export = async function(context: Context, options?: IRunOptions): Promise<void | ITaskConfig[] | WebpackDevServer> {
1414
const { eject } = options || {};
@@ -28,7 +28,7 @@ export = async function(context: Context, options?: IRunOptions): Promise<void |
2828
}
2929

3030
let serverUrl = '';
31-
let devServerConfig: DevServer = {
31+
let devServerConfig: DevServerConfig = {
3232
port: commandArgs.port || 3333,
3333
host: commandArgs.host || '0.0.0.0',
3434
https: commandArgs.https || false,
@@ -90,31 +90,20 @@ export = async function(context: Context, options?: IRunOptions): Promise<void |
9090
// context may hijack webpack resolve
9191
// eslint-disable-next-line @typescript-eslint/no-var-requires
9292
const DevServer = require('webpack-dev-server');
93-
const devServer = new DevServer(compiler, devServerConfig);
93+
const devServer: WebpackDevServer = new DevServer(devServerConfig, compiler);
9494

9595
await applyHook(`before.${command}.devServer`, {
9696
url: serverUrl,
9797
urls,
9898
devServer,
9999
});
100100

101-
devServer.listen(
102-
devServerConfig.port,
103-
devServerConfig.host,
104-
async (err: Error) => {
105-
if (err) {
106-
log.info(
107-
'WEBPACK',
108-
chalk.red('[ERR]: Failed to start webpack dev server'),
109-
);
110-
log.error('WEBPACK', err.stack || err.toString());
111-
}
112-
113-
await applyHook(`after.${command}.devServer`, {
101+
devServer.startCallback(
102+
() => {
103+
applyHook(`after.${command}.devServer`, {
114104
url: serverUrl,
115105
urls,
116106
devServer,
117-
err,
118107
});
119108
},
120109
);

0 commit comments

Comments
 (0)