Как определить, запущен ли webpack-dev-сервер?

Как определить, была ли загружена webpack.config.js через webpack vs webpack-dev-server?

Ответ 1

Сервер разработки веб-пакетов теперь устанавливает переменную среды WEBPACK_DEV_SERVER, что обеспечивает более надежный способ проверки.

const isDevServer = process.env.WEBPACK_DEV_SERVER;

Ответ 2

Или:

const isDevServer = process.argv[1].indexOf('webpack-dev-server') !== -1;

или

const isDevServer = process.argv.find(v => v.indexOf('webpack-dev-server') !== -1);

или

const isDevServer = process.argv.find(v => v.includes('webpack-dev-server'));

Я использую последнее для большого эффекта. Одна конфигурация FTW!

Ответ 3

Я нашел один потенциальный солитон:

var isDevServer = path.basename(require.main.filename) === 'webpack-dev-server.js';

кредит

Ответ 4

Или используйте переменные среды Webpack:

// The webpack command line
webpack-dev-server --open --env.devServer

// webpack.config.js
module.exports = env => {
  console.log('isDevServer: ', env.devServer) // true
  ...
}