javascript - Requerer ficheiro condicionalmente no webpack


Quero agrupar os ficheiros na minha compilação de produção apenas se não for para DEBUG;

Então eu usei webpack.DefinePlugin e defini a variável DEBUG === true.

Também configure webpack.UglifyJsPlugin com as opções predefinidas

E no ficheiro js, eu faço assim:

const A = DEBUG === true ? null : require('./some-debug.js');
//do things with A, for example
console.log(A)

Verifiquei o ficheiro final do bundle, A foi substituído por null (portanto, o DefinePlugin está a funcionar bem), mas o conteúdo do ficheiro some-debug.js ainda está no bundle js.

É possível fazer com que o webpack não exija o ficheiro?

ps: Acho que consigo usar resolve.alias para resolver './some-debug.js' --> undefined. Mas quero manter o meu webpack.config.js genérico, não quero aplicar muitas entradas de resolve.alias.

Obrigado

Resposta #1

Não funciona com o operador ternário.

let A;  
if (DEBUG === true) {
  A = require('./some-debug.js');
}