What triggers (re)install when no watch.json present?

Ok, thank you.
Now I see what the problem actually was:

I just didnt notice it reinstalls every time on wake up as it was quick, but several times, in my case it would eventually complete installation, only not soon enough for client accessing the site connection would time out.

The reinstall now seems to be quick again.

But, is it really necessary to re-install everything on wake up? And just to confirm, it will reinstall on wake up even if package.json is not asking for the latest version of any module but only specific version already installed?