This loader hook makes it relatively easy to use NYC to check coverage of ESM running in node.js 16.12.0. Note this makes use of experimental node.js features and thus may stop working upon release of new versions of node.js. Until the node.js feature is stabilized breakage should not be unexpected.
For more stable options to test coverage you can:
- Use c8
- Pre-instrument your code (run
nyc instrument
then test the output)
To install this hook into a process the module must be provided through the
--experimental-loader
flag.
The following can be used for your npm test
script to enable live instrumentation
of ES modules being tested with mocha:
cross-env 'NODE_OPTIONS=--experimental-loader @istanbuljs/esm-loader-hook' nyc mocha
This module executes babel-plugin-istanbul in a loader hook. No
options are provided to the babel plugin and babel configuration files are not honored.
Normally configuration will be provided by the currently running instance of nyc. If
this module is run outside nyc then it will use @istanbuljs/load-nyc-config
to load
options, defaults from @istanbuljs/schema
will apply to missing options or if no
configuration is found.