Problem description

Using ES6 syntax in Web Storm (similar to IDEA) and using Mocha (similar to other frameworks like Jest) will fail the test and cause an error. This article addresses this problem through configuration.

Import assert from "assert"; ^^^^^^ SyntaxError: Cannot use import statement outside a module at wrapSafe (internal/modules/cjs/loader.js:1116:16) at Module._compile (internal/modules/cjs/loader.js:1164:27) at Object.Module._extensions.. js (internal/modules/cjs/loader.js:1220:10) at Module.load (internal/modules/cjs/loader.js:1049:32) at Function.Module._load (internal/modules/cjs/loader.js:937:14) at Module.require (internal/modules/cjs/loader.js:1089:19)  at require (internal/modules/cjs/helpers.js:73:18) at Object.exports.requireOrImport (/home/chriego/Projects/personal/my-project/frontend/node_modules/mocha/lib/esm-utils.js:20:12) at Object.exports.loadFilesAsync (/home/chriego/Projects/personal/my-project/frontend/node_modules/mocha/lib/esm-utils.js:33:34) at Mocha.loadFilesAsync (/home/chriego/Projects/personal/my-project/frontend/node_modules/mocha/lib/mocha.js:421:19) at singleRun (/home/chriego/Projects/personal/my-project/frontend/node_modules/mocha/lib/cli/run-helpers.js:156:15) at exports.runMocha (/home/chriego/Projects/personal/my-project/frontend/node_modules/mocha/lib/cli/run-helpers.js:225:10) at Object.exports.handler (/home/chriego/Projects/personal/my-project/frontend/node_modules/mocha/lib/cli/run.js:366:11)  at /home/chriego/Projects/personal/my-project/frontend/node_modules/mocha/node_modules/yargs/lib/command.js:241:49 Process finished with exit code 1Copy the code

The solution

  1. Global installation
npm install --save-dev babel-core babel-preset-es2015
Copy the code
  1. Configuration. Babelrc
//.babelrc
{
  "presets": [ "es2015" ]
}
Copy the code
  1. Menu -> Run -> Edit Configurations

  1. Add Extra Mocha options
--compilers js:babel-core/register
Copy the code

Take effect after the Apply

The above.

Reference documentation

  • javascript – How to use ES6 imports in Mocha tests in IntelliJ IDEA? – Stack Overflow
  • Mocha | IntelliJ IDEA (jetbrains.com)
  • node.js – Webstorm: Debugging Mocha tests written in ES6 – Stack Overflow