diff --git a/bin/webpack-dev-server.js b/bin/webpack-dev-server.js index 4ab436d6a0..b2555abd9b 100755 --- a/bin/webpack-dev-server.js +++ b/bin/webpack-dev-server.js @@ -92,6 +92,8 @@ yargs.options(options); const argv = yargs.argv; +process.env.WEBPACK_DEV_SERVER = true; + // webpack-cli@3.3 path : 'webpack-cli/bin/utils/convert-argv' let convertArgvPath; try { diff --git a/lib/Server.js b/lib/Server.js index 7b5d76557e..295d7e857c 100644 --- a/lib/Server.js +++ b/lib/Server.js @@ -90,6 +90,8 @@ class Server { throw new Error("'filename' option must be set in lazy mode."); } + process.env.WEBPACK_DEV_SERVER = true; + // if the user enables http2, we can safely enable https if (options.http2 && !options.https) { options.https = true; diff --git a/test/Server.test.js b/test/Server.test.js index 1c4a17bb78..002836f8e3 100644 --- a/test/Server.test.js +++ b/test/Server.test.js @@ -8,6 +8,13 @@ const config = require('./fixtures/simple-config/webpack.config'); const helper = require('./helper'); describe('Server', () => { + it('process.env.WEBPACK_DEV_SERVER', () => { + const compiler = webpack(config); + // eslint-disable-next-line no-new + new Server(compiler); + expect(process.env.WEBPACK_DEV_SERVER).toBeTruthy(); + }); + describe('addEntries', () => { it('add hot option', () => { return new Promise((res) => { diff --git a/test/cli.test.js b/test/cli.test.js index 69b2128169..258695f6f5 100644 --- a/test/cli.test.js +++ b/test/cli.test.js @@ -17,6 +17,15 @@ const keyPath = path.join(httpsCertificateDirectory, 'server.key'); const certPath = path.join(httpsCertificateDirectory, 'server.crt'); describe('CLI', () => { + it('process.env.WEBPACK_DEV_SERVER', (done) => { + runDevServer() + .then(() => { + expect(process.env.WEBPACK_DEV_SERVER).toBeTruthy(); + done(); + }) + .catch(done); + }); + it('--progress', (done) => { runDevServer('--progress') .then((output) => {