Three variations on a Webpack build script
I would say a very big "no" to Version 3. Instantiating an object should not have a side-effect of emptying a directory and kicking off a build — that's very surprising behavior. In OOP, the methods should be the verbs. Here, your noun has gone rogue and is doing all kinds of activities.

Version 2 adds verbosity with questionable benefits. If you want to define functions, then the functions should accept parameters and return results. Here, the functions act on inputs that are essentially global variables, so you still have to read the code within each function to understand what it does.

Version 1 is good, and I would say that the added comments are probably beneficial.

All four of the scripts lack decent error handling. If an error occurs, I would expect the entire script to abort, rather than printing a message and trying to continue.