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

mpe*_*pen 14 webpack webpack-dev-server

如何确定是否webpack.config.js通过webpackvs 加载webpack-dev-server

Mar*_*ten 20

webpack 开发服务器现在将设置WEBPACK_DEV_SERVER环境变量,以提供更强大的检查方式。

const isDevServer = process.env.WEBPACK_DEV_SERVER;
Run Code Online (Sandbox Code Playgroud)


bjf*_*her 16

或者:

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!

  • 一个挑剔:第二个和第三个选项实际上会将 `isDevServer` 设置为包含 `'webpack-dev-server'` 的 `argv` 元素的值。用 `some` 代替 `find` 以确保 `isDevServer` 是一个布尔值。 (2认同)

mpe*_*pen 7

我发现了一个潜在的解决方案:

var isDevServer = path.basename(require.main.filename) === 'webpack-dev-server.js';
Run Code Online (Sandbox Code Playgroud)

信用


小智 6

或使用Webpack环境变量

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

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