Skip to content

Commit 6b667b4

Browse files
authored
refactor: remove socket option (#2669)
BREAKING CHANGE: remove socket option
1 parent 8f6c8f4 commit 6b667b4

File tree

13 files changed

+19
-157
lines changed

13 files changed

+19
-157
lines changed

bin/cli-flags.js

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -121,12 +121,6 @@ module.exports = {
121121
describe: 'Will not check the host',
122122
group: CONNECTION_GROUP,
123123
},
124-
{
125-
name: 'socket',
126-
type: String,
127-
describe: 'Socket to listen',
128-
group: CONNECTION_GROUP,
129-
},
130124
{
131125
name: 'public',
132126
type: String,

bin/options.js

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -108,11 +108,6 @@ const options = {
108108
describe: 'Will not check the host',
109109
group: CONNECTION_GROUP,
110110
},
111-
socket: {
112-
type: 'String',
113-
describe: 'Socket to listen',
114-
group: CONNECTION_GROUP,
115-
},
116111
public: {
117112
type: 'string',
118113
describe: 'The public hostname/ip address of the server',

bin/webpack-dev-server.js

Lines changed: 5 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44

55
/* eslint-disable no-shadow, no-console */
66

7-
const fs = require('fs');
8-
const net = require('net');
97
const debug = require('debug')('webpack-dev-server');
108
const importLocal = require('import-local');
119
const yargs = require('yargs');
@@ -116,51 +114,11 @@ function startDevServer(config, options) {
116114
throw err;
117115
}
118116

119-
if (options.socket) {
120-
server.listeningApp.on('error', (e) => {
121-
if (e.code === 'EADDRINUSE') {
122-
const clientSocket = new net.Socket();
123-
124-
clientSocket.on('error', (err) => {
125-
if (err.code === 'ECONNREFUSED') {
126-
// No other server listening on this socket so it can be safely removed
127-
fs.unlinkSync(options.socket);
128-
129-
server.listen(options.socket, options.host, (error) => {
130-
if (error) {
131-
throw error;
132-
}
133-
});
134-
}
135-
});
136-
137-
clientSocket.connect({ path: options.socket }, () => {
138-
throw new Error('This socket is already used');
139-
});
140-
}
141-
});
142-
143-
server.listen(options.socket, options.host, (err) => {
144-
if (err) {
145-
throw err;
146-
}
147-
148-
// chmod 666 (rw rw rw)
149-
const READ_WRITE = 438;
150-
151-
fs.chmod(options.socket, READ_WRITE, (err) => {
152-
if (err) {
153-
throw err;
154-
}
155-
});
156-
});
157-
} else {
158-
server.listen(options.port, options.host, (err) => {
159-
if (err) {
160-
throw err;
161-
}
162-
});
163-
}
117+
server.listen(options.port, options.host, (err) => {
118+
if (err) {
119+
throw err;
120+
}
121+
});
164122
}
165123

166124
processOptions(config, argv, (config, options) => {

lib/options.json

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -302,9 +302,6 @@
302302
"serveIndex": {
303303
"type": "boolean"
304304
},
305-
"socket": {
306-
"type": "string"
307-
},
308305
"staticOptions": {
309306
"type": "object"
310307
},
@@ -376,7 +373,6 @@
376373
"requestCert": "should be {Boolean}",
377374
"contentBasePublicPath": "should be {String|Array} (https://webpack.js.org/configuration/dev-server/#devservercontentbasepublicpath)",
378375
"serveIndex": "should be {Boolean} (https://webpack.js.org/configuration/dev-server/#devserverserveindex)",
379-
"socket": "should be {String} (https://webpack.js.org/configuration/dev-server/#devserversocket)",
380376
"staticOptions": "should be {Object} (https://webpack.js.org/configuration/dev-server/#devserverstaticoptions)",
381377
"transportMode": "should be {String|Object} (https://webpack.js.org/configuration/dev-server/#devservertransportmode)",
382378
"useLocalIp": "should be {Boolean} (https://webpack.js.org/configuration/dev-server/#devserveruselocalip)",

lib/utils/createConfig.js

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,6 @@ function createConfig(config, argv, { port }) {
2727
options.public = argv.public;
2828
}
2929

30-
if (argv.socket) {
31-
options.socket = argv.socket;
32-
}
33-
3430
if (argv.liveReload === false) {
3531
options.liveReload = false;
3632
}

lib/utils/createDomain.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ function createDomain(options, server) {
1010
: options.host || 'localhost';
1111

1212
// eslint-disable-next-line no-nested-ternary
13-
const port = options.socket ? 0 : server ? server.address().port : 0;
13+
const port = server ? server.address().port : 0;
1414
// use explicitly defined public url
1515
// (prefix with protocol if not explicitly given)
1616
if (options.public) {

lib/utils/processOptions.js

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -24,21 +24,17 @@ function processOptions(config, argv, callback) {
2424
// we should use portfinder.
2525
const options = createConfig(config, argv, { port: defaultPort });
2626

27-
if (options.socket) {
28-
callback(config, options);
29-
} else {
30-
findPort(options.port)
31-
.then((port) => {
32-
options.port = port;
33-
callback(config, options);
34-
})
35-
.catch((err) => {
36-
// eslint-disable-next-line no-console
37-
console.error(err.stack || err);
38-
// eslint-disable-next-line no-process-exit
39-
process.exit(1);
40-
});
41-
}
27+
findPort(options.port)
28+
.then((port) => {
29+
options.port = port;
30+
callback(config, options);
31+
})
32+
.catch((err) => {
33+
// eslint-disable-next-line no-console
34+
console.error(err.stack || err);
35+
// eslint-disable-next-line no-process-exit
36+
process.exit(1);
37+
});
4238
}
4339

4440
module.exports = processOptions;

test/__snapshots__/Validation.test.js.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,5 +31,5 @@ exports[`Validation validation should fail validation for invalid \`overlay\` co
3131
exports[`Validation validation should fail validation for no additional properties 1`] = `
3232
"Invalid configuration object. Object has been initialized using a configuration object that does not match the API schema.
3333
- configuration has an unknown property 'additional'. These properties are valid:
34-
object { allowedHosts?, bonjour?, client?, compress?, contentBasePublicPath?, contentBase?, dev?, disableHostCheck?, headers?, historyApiFallback?, host?, hot?, http2?, https?, injectClient?, injectHot?, liveReload?, onAfterSetupMiddleware?, onBeforeSetupMiddleware?, onListening?, open?, openPage?, overlay?, port?, profile?, progress?, proxy?, public?, requestCert?, serveIndex?, socket?, staticOptions?, transportMode?, useLocalIp?, watchContentBase?, watchOptions? }"
34+
object { allowedHosts?, bonjour?, client?, compress?, contentBasePublicPath?, contentBase?, dev?, disableHostCheck?, headers?, historyApiFallback?, host?, hot?, http2?, https?, injectClient?, injectHot?, liveReload?, onAfterSetupMiddleware?, onBeforeSetupMiddleware?, onListening?, open?, openPage?, overlay?, port?, profile?, progress?, proxy?, public?, requestCert?, serveIndex?, staticOptions?, transportMode?, useLocalIp?, watchContentBase?, watchOptions? }"
3535
`;

test/cli/cli.test.js

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
'use strict';
22

3-
const { unlink } = require('fs');
4-
const { join, resolve } = require('path');
3+
const { resolve } = require('path');
54
const execa = require('execa');
65
const testBin = require('../helpers/test-bin');
76

@@ -90,27 +89,6 @@ describe('CLI', () => {
9089
.catch(done);
9190
});
9291

93-
// The Unix socket to listen to (instead of a host).
94-
it('--socket', (done) => {
95-
const socketPath = join('.', 'webpack.sock');
96-
97-
testBin(`--socket ${socketPath}`)
98-
.then((output) => {
99-
expect(output.exitCode).toEqual(0);
100-
101-
if (process.platform === 'win32') {
102-
done();
103-
} else {
104-
expect(output.stderr).toContain(socketPath);
105-
106-
unlink(socketPath, () => {
107-
done();
108-
});
109-
}
110-
})
111-
.catch(done);
112-
});
113-
11492
it('should accept the promise function of webpack.config.js', (done) => {
11593
testBin(
11694
false,

test/fixtures/schema/webpack.config.no-dev-stats.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ module.exports = {
88
devServer: {
99
host: '_foo',
1010
public: '_public',
11-
socket: '_socket',
1211
progress: '_progress',
1312
publicPath: '_publicPath',
1413
hot: '_hot',

test/options.test.js

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -389,10 +389,6 @@ describe('options', () => {
389389
success: [true],
390390
failure: [''],
391391
},
392-
socket: {
393-
success: [''],
394-
failure: [false],
395-
},
396392
staticOptions: {
397393
success: [{}],
398394
failure: [false],

test/server/utils/__snapshots__/createConfig.test.js.snap

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -755,28 +755,6 @@ Object {
755755
}
756756
`;
757757

758-
exports[`createConfig socket option (devServer config) 1`] = `
759-
Object {
760-
"dev": Object {
761-
"publicPath": "/",
762-
},
763-
"hot": true,
764-
"port": 8080,
765-
"socket": "socket",
766-
}
767-
`;
768-
769-
exports[`createConfig socket option 1`] = `
770-
Object {
771-
"dev": Object {
772-
"publicPath": "/",
773-
},
774-
"hot": true,
775-
"port": 8080,
776-
"socket": "socket",
777-
}
778-
`;
779-
780758
exports[`createConfig useLocalIp option (in devServer config) 1`] = `
781759
Object {
782760
"dev": Object {

test/server/utils/createConfig.test.js

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -159,30 +159,6 @@ describe('createConfig', () => {
159159
expect(config).toMatchSnapshot();
160160
});
161161

162-
it('socket option', () => {
163-
const config = createConfig(
164-
webpackConfig,
165-
Object.assign({}, argv, {
166-
socket: 'socket',
167-
}),
168-
{ port: 8080 }
169-
);
170-
171-
expect(config).toMatchSnapshot();
172-
});
173-
174-
it('socket option (devServer config)', () => {
175-
const config = createConfig(
176-
Object.assign({}, webpackConfig, {
177-
devServer: { socket: 'socket' },
178-
}),
179-
argv,
180-
{ port: 8080 }
181-
);
182-
183-
expect(config).toMatchSnapshot();
184-
});
185-
186162
it('progress option', () => {
187163
const config = createConfig(
188164
webpackConfig,

0 commit comments

Comments
 (0)