A couple of my sad tips:
- Caches are evil # 1.
Partial re-builds are fast but might lead to weird issues due to CMake missing some update, Make missing some update or developer missing some errors in logs but still having some binaries in output folder. I'm prefer to have an option clearing all building artifacts at once before build and reproducing all building steps cleanly in batch script (like toClean=1 does in wasm_build.bat) - which could be achieved by manually removing all working and installation folders. - Caches are evil # 2.
Browser cache works very strangely. Theoretically, it is supposed that server and web-application should manage lifetime of downloaded files, so that Browsers will re-download files with the same URL when time expires. When this doesn't work (which is often the case for development server, although I've seen the same issue with production servers and developers told me they have no idea how to solve this) - Browser might download some files anew and keep using some files from cache. Things become worse because user expects that refreshing a page (F5) should re-download files - but Browsers don't do it (for all files)! It is possible to reliable clean up cache for a specific site in Browser settings, but I simply open development sites from "Private sessions" and restart the session on site update. I guess that rotating URLs to WASM artifacts and JS files on content change might help, but haven't seen any server using that approach. - Caches are evil # 3.
If you are developing an AngularJS application - it's "ng serve" might cache WASM artifacts somewhere deep in it's own cache and ignore requests to reset cache. Once, I have to delete entire cache folder to fix the problem. - Pythons simple HTTP server is really simple.
And unreliable - it might hang indefinitely, especially when site is opened from multiple Browsers, and you might need killing and restarting server from time to time. Or use a more reliable server for testing. Python 3.7+ has threaded version of simple HTTP server, but I haven't yet checked if it helps with freezes.
You might want to print some message into JavaScript console from WASM application with build information to ensure that you are actually running the latest build, not some older cache.