At work we use Envoyer to build our assets as part of our deployment. This has removed a lot of the headaches related to merge conflicts.
However, due to this, deployment takes a long time. Even when you just deploy a update to a controller or some other things.
We use these deployment hooks to run npm install
and npm run production
only if there's been changes to the source files.
The hooks should work as long as your assets are in resources/assets
(which was the default up to Laravel 5.7).