Question: I am trying to use nyc + mocha to get test coverage on my unit tests that uses the es6 module syntax.
When I run `mocha my_test.mjs` everything works fine. The dependencies within my\_test.mjs (using native import) are resolved correctly.
But when I prepend this command with nyc: `nyc mocha my_test.mjs` it doesn't work anymore, throwing this error:

```
node_modules/mocha/lib/esm-utils.js:6
    return import(url.pathToFileURL(file));
           ^^^^^^

SyntaxError: Unexpected token import
    at Module._extensions..js (module.js:663:10)
    at Object.replacementCompile (nodejs/core/tests/cache.install.nodejs_install/node_modules/append-transform/index.js:60:13)
    at Module._extensions..js (module.js:663:10)

```

I tried different variants `nyc --require esm mocha my_test.mjs` or forcing `--experimental-modules` with node but nothing seems to work.

Note, I am using the latest version of node, nyc and mocha

Any idea?

Answer: 
I encountered the same issue after updating my dependencies. I updated to mocha version 8.x, while still using mocha.opts for configuration.

> 
> #4175: Having been deprecated with a warning since v7.0.0, mocha.opts is no longer supported
> 
> 
> 

See the release notes: <https://github.com/mochajs/mocha/releases/tag/v8.0.0>

Reverting back to mocha 7.x helped me in the end\*.
If you don't want to use mocha 7 or older, you can replace mocha.opts with a configuration file:
<https://mochajs.org/#configuring-mocha-nodejs>

\*note: On the way, I also added

```
"@types/node": "14.0.14",
"@types/mocha": "7.0.2",

```

to package.json. My nyc version is `"nyc": "15.1.0",` But I am not sure if that is necessary to solve your problem.
I have the same problem with you。Actually，I revise this file   

**node\_modules/mocha/lib/esm-utils.js**   

from

```
return import(url.pathToFileURL(file));

```

to

```
return require(url.pathToFileURL(file));

```

it can works.