Watch A Directory And Run Mocha JS With ES Modules When Files Change

May - 2022

This is how I'm running Mochajs in watch mode with ES Modules:

mocha --watch --parallel

Adding --parallel is based off this comment to a GitHub issue about --watch not working by itself with ES Modules.

If you try to run mocha --watch without --parallel it produces errors like:

Error [ERR_REQUIRE_ESM]: require() of ES Module 
/file/path/file.mjs not supported.
Instead change the require of /file/path/file.mjs 
to a dynamic import() which is available in all 
CommonJS modules.

(I think I've done the dynamic import stuff before in other projects, but haven't tried it with Mocha yet)