I wouldn't say it's a resource constrained machine. As for the circular dependencies I've ran madge on the project and there was one file which was referencing itself. I removed that file as a test but the verify stage still takes the same time to complete.
There's essentially three projects which can all be run separately using mimosa:
P1 is the base project.
P2 is a project which adds P1 as a dependency and references those files.
P3 is a project which adds both P2 and P1 as a dependency and references those files.
P1 and P2 verify stages aren't noticeably long but P3 is the project which takes a long time to complete verification.
As I mentioned before P3 has a root require file (say it's called 'rootRequire.js') which will reference both projects as dependencies. Going back to the code I imagine the _addDepsToTree will go through each of the files in all 3 projects and add any unique files to the variable this.tree['rootRequire.js']. At the end of the verification this.tree['rootRequire.js'] has an array of all the unique file path dependencies. I'm not sure what the usage of the tree is for (not even sure it looks like a tree) but this is taking a very long time to complete. The steps beforehand (_verifyShims, verifyFileDeps, verifyConfigForFile) seem to blitz through and They're the functions which seems to log mimosa errors if something is wrong.
I can definitely picture the addDepsToTree call being very time consuming considering there's ~200 unique files referencing each other and the verify has to read each file's dependencies and then read the dependencies of those dependencies etc. This would have a lot of repetition since if for example one file (file A) had two dependencies (file B and file C), both of which had a dependency which were referencing the same file (file D), that file (file D) would be verified twice when file B and C are verified.
I'm just writing out my thought process of the mimosa-require verification steps but I could be completely wrong. Unfortunately I can't provide a demo project but hopefully the information I've provided makes sense.
Thanks