The package.json file in the root directory is used for developing the CMS (modules and plugins). You won’t need to run that each time you deploy.
The demo theme also uses npm to import some libraries and it won’t need to run it there either.
The only time it might be needed is if you were using Tailwind in the theme or something like this. In which case, you’d need to run it every time the theme classes change.
We are also using purgeJs on bootstrap as well as I’m compiling the whole bootstrap with it, so every time we make a changes (in css/custom scss || design) we had to run it. Gives ways to update caniuse package once in a while.