如何检测 webpack-dev-server 是否为 运行?

How to detect if webpack-dev-server is running?

如何确定 webpack.config.js 是通过 webpack 还是 webpack-dev-server 加载的?

我找到了一个可能的解决方案:

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

credit

任一:

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

或:

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

或:

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

我一直在使用后者,效果很好。一种配置 FTW!

或使用Webpack Environment Variables:

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

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

更新:环境变量为changedWEBPACK_SERVE.

webpack 开发服务器 will now 设置了 WEBPACK_DEV_SERVER 环境变量,允许更可靠的检查方式。

const isDevServer = process.env.WEBPACK_DEV_SERVER;