UglifyJS and probably other minifiers remove dead code, when a const has a
value, which is used in an if statement elsewhere. For example:

const ES5 =true;

if(ES5){

console.log("I have ES5 features");

}else{

console.log("I'm an old browser");

}

minifies to simply:

console.log("I have ES5 features");

Now we can use this, to make, say, a mobile version, with mobile specific code,
or special code for development, with DEV code.

However, eventually, you want to deploy to production, or to another environment
target, so the const values have to change, from const DEV = true, to
const DEV = false, so all if (DEV){ ... } code is removed.

UglifyJS doesn't replace variables or constants. So those variables defined
by --define are only later specified. This causes problems when you just want
to use if (DEV){ ... }, instead you have to do an extra
typeof DEV != 'undefined' check, which is ugly and too verbose.