migrate watch logic to filewatcher module
avoid building the same bundle multiple times concurrently