diff --git a/bin/cli-flags.js b/bin/cli-flags.js index 1032bf29ee..f00de7cdad 100644 --- a/bin/cli-flags.js +++ b/bin/cli-flags.js @@ -121,12 +121,6 @@ module.exports = { describe: 'Will not check the host', group: CONNECTION_GROUP, }, - { - name: 'socket', - type: String, - describe: 'Socket to listen', - group: CONNECTION_GROUP, - }, { name: 'public', type: String, diff --git a/bin/options.js b/bin/options.js index 5c1cb3159a..4483358997 100644 --- a/bin/options.js +++ b/bin/options.js @@ -108,11 +108,6 @@ const options = { describe: 'Will not check the host', group: CONNECTION_GROUP, }, - socket: { - type: 'String', - describe: 'Socket to listen', - group: CONNECTION_GROUP, - }, public: { type: 'string', describe: 'The public hostname/ip address of the server', diff --git a/bin/webpack-dev-server.js b/bin/webpack-dev-server.js index dc34a05fe0..64dbbeb5fd 100755 --- a/bin/webpack-dev-server.js +++ b/bin/webpack-dev-server.js @@ -4,8 +4,6 @@ /* eslint-disable no-shadow, no-console */ -const fs = require('fs'); -const net = require('net'); const debug = require('debug')('webpack-dev-server'); const importLocal = require('import-local'); const yargs = require('yargs'); @@ -116,51 +114,11 @@ function startDevServer(config, options) { throw err; } - if (options.socket) { - server.listeningApp.on('error', (e) => { - if (e.code === 'EADDRINUSE') { - const clientSocket = new net.Socket(); - - clientSocket.on('error', (err) => { - if (err.code === 'ECONNREFUSED') { - // No other server listening on this socket so it can be safely removed - fs.unlinkSync(options.socket); - - server.listen(options.socket, options.host, (error) => { - if (error) { - throw error; - } - }); - } - }); - - clientSocket.connect({ path: options.socket }, () => { - throw new Error('This socket is already used'); - }); - } - }); - - server.listen(options.socket, options.host, (err) => { - if (err) { - throw err; - } - - // chmod 666 (rw rw rw) - const READ_WRITE = 438; - - fs.chmod(options.socket, READ_WRITE, (err) => { - if (err) { - throw err; - } - }); - }); - } else { - server.listen(options.port, options.host, (err) => { - if (err) { - throw err; - } - }); - } + server.listen(options.port, options.host, (err) => { + if (err) { + throw err; + } + }); } processOptions(config, argv, (config, options) => { diff --git a/lib/options.json b/lib/options.json index 82cb4d8869..756ced4225 100644 --- a/lib/options.json +++ b/lib/options.json @@ -302,9 +302,6 @@ "serveIndex": { "type": "boolean" }, - "socket": { - "type": "string" - }, "staticOptions": { "type": "object" }, @@ -376,7 +373,6 @@ "requestCert": "should be {Boolean}", "contentBasePublicPath": "should be {String|Array} (https://webpack.js.org/configuration/dev-server/#devservercontentbasepublicpath)", "serveIndex": "should be {Boolean} (https://webpack.js.org/configuration/dev-server/#devserverserveindex)", - "socket": "should be {String} (https://webpack.js.org/configuration/dev-server/#devserversocket)", "staticOptions": "should be {Object} (https://webpack.js.org/configuration/dev-server/#devserverstaticoptions)", "transportMode": "should be {String|Object} (https://webpack.js.org/configuration/dev-server/#devservertransportmode)", "useLocalIp": "should be {Boolean} (https://webpack.js.org/configuration/dev-server/#devserveruselocalip)", diff --git a/lib/utils/createConfig.js b/lib/utils/createConfig.js index 1f23fc0bee..dc8dd6e981 100644 --- a/lib/utils/createConfig.js +++ b/lib/utils/createConfig.js @@ -27,10 +27,6 @@ function createConfig(config, argv, { port }) { options.public = argv.public; } - if (argv.socket) { - options.socket = argv.socket; - } - if (argv.liveReload === false) { options.liveReload = false; } diff --git a/lib/utils/createDomain.js b/lib/utils/createDomain.js index 1c9fea6f7b..853fe9cb4c 100644 --- a/lib/utils/createDomain.js +++ b/lib/utils/createDomain.js @@ -10,7 +10,7 @@ function createDomain(options, server) { : options.host || 'localhost'; // eslint-disable-next-line no-nested-ternary - const port = options.socket ? 0 : server ? server.address().port : 0; + const port = server ? server.address().port : 0; // use explicitly defined public url // (prefix with protocol if not explicitly given) if (options.public) { diff --git a/lib/utils/processOptions.js b/lib/utils/processOptions.js index ba224ed690..33a8d4a145 100644 --- a/lib/utils/processOptions.js +++ b/lib/utils/processOptions.js @@ -24,21 +24,17 @@ function processOptions(config, argv, callback) { // we should use portfinder. const options = createConfig(config, argv, { port: defaultPort }); - if (options.socket) { - callback(config, options); - } else { - findPort(options.port) - .then((port) => { - options.port = port; - callback(config, options); - }) - .catch((err) => { - // eslint-disable-next-line no-console - console.error(err.stack || err); - // eslint-disable-next-line no-process-exit - process.exit(1); - }); - } + findPort(options.port) + .then((port) => { + options.port = port; + callback(config, options); + }) + .catch((err) => { + // eslint-disable-next-line no-console + console.error(err.stack || err); + // eslint-disable-next-line no-process-exit + process.exit(1); + }); } module.exports = processOptions; diff --git a/test/__snapshots__/Validation.test.js.snap b/test/__snapshots__/Validation.test.js.snap index 9b714cbe1e..0630adc0f6 100644 --- a/test/__snapshots__/Validation.test.js.snap +++ b/test/__snapshots__/Validation.test.js.snap @@ -31,5 +31,5 @@ exports[`Validation validation should fail validation for invalid \`overlay\` co exports[`Validation validation should fail validation for no additional properties 1`] = ` "Invalid configuration object. Object has been initialized using a configuration object that does not match the API schema. - configuration has an unknown property 'additional'. These properties are valid: - 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? }" + 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? }" `; diff --git a/test/cli/cli.test.js b/test/cli/cli.test.js index f428fe1cc0..2fa893f319 100644 --- a/test/cli/cli.test.js +++ b/test/cli/cli.test.js @@ -1,7 +1,6 @@ 'use strict'; -const { unlink } = require('fs'); -const { join, resolve } = require('path'); +const { resolve } = require('path'); const execa = require('execa'); const testBin = require('../helpers/test-bin'); @@ -90,27 +89,6 @@ describe('CLI', () => { .catch(done); }); - // The Unix socket to listen to (instead of a host). - it('--socket', (done) => { - const socketPath = join('.', 'webpack.sock'); - - testBin(`--socket ${socketPath}`) - .then((output) => { - expect(output.exitCode).toEqual(0); - - if (process.platform === 'win32') { - done(); - } else { - expect(output.stderr).toContain(socketPath); - - unlink(socketPath, () => { - done(); - }); - } - }) - .catch(done); - }); - it('should accept the promise function of webpack.config.js', (done) => { testBin( false, diff --git a/test/fixtures/schema/webpack.config.no-dev-stats.js b/test/fixtures/schema/webpack.config.no-dev-stats.js index ea5e1c748b..3c5b352eef 100644 --- a/test/fixtures/schema/webpack.config.no-dev-stats.js +++ b/test/fixtures/schema/webpack.config.no-dev-stats.js @@ -8,7 +8,6 @@ module.exports = { devServer: { host: '_foo', public: '_public', - socket: '_socket', progress: '_progress', publicPath: '_publicPath', hot: '_hot', diff --git a/test/options.test.js b/test/options.test.js index 46da4a0896..b1df23518d 100644 --- a/test/options.test.js +++ b/test/options.test.js @@ -389,10 +389,6 @@ describe('options', () => { success: [true], failure: [''], }, - socket: { - success: [''], - failure: [false], - }, staticOptions: { success: [{}], failure: [false], diff --git a/test/server/utils/__snapshots__/createConfig.test.js.snap b/test/server/utils/__snapshots__/createConfig.test.js.snap index 05dfd4490a..4091f882b8 100644 --- a/test/server/utils/__snapshots__/createConfig.test.js.snap +++ b/test/server/utils/__snapshots__/createConfig.test.js.snap @@ -755,28 +755,6 @@ Object { } `; -exports[`createConfig socket option (devServer config) 1`] = ` -Object { - "dev": Object { - "publicPath": "/", - }, - "hot": true, - "port": 8080, - "socket": "socket", -} -`; - -exports[`createConfig socket option 1`] = ` -Object { - "dev": Object { - "publicPath": "/", - }, - "hot": true, - "port": 8080, - "socket": "socket", -} -`; - exports[`createConfig useLocalIp option (in devServer config) 1`] = ` Object { "dev": Object { diff --git a/test/server/utils/createConfig.test.js b/test/server/utils/createConfig.test.js index 89b317e145..d38d8bf0f4 100644 --- a/test/server/utils/createConfig.test.js +++ b/test/server/utils/createConfig.test.js @@ -159,30 +159,6 @@ describe('createConfig', () => { expect(config).toMatchSnapshot(); }); - it('socket option', () => { - const config = createConfig( - webpackConfig, - Object.assign({}, argv, { - socket: 'socket', - }), - { port: 8080 } - ); - - expect(config).toMatchSnapshot(); - }); - - it('socket option (devServer config)', () => { - const config = createConfig( - Object.assign({}, webpackConfig, { - devServer: { socket: 'socket' }, - }), - argv, - { port: 8080 } - ); - - expect(config).toMatchSnapshot(); - }); - it('progress option', () => { const config = createConfig( webpackConfig,