So, why are there a bunch of commands available to use without paths within package.json? Well, because npm creates inside node_modules a folder called .bin that stores a whole bunch of binary executables. These are then available within the scope of package.json.
You can easily pipe commands in package.json:
"webpack": "webpack"
"dev": "npm run webpack -- --mode development"