9

I want to import into my test file utility module, which is written in ES6 and exports several things I need. So what I do is

import { module } from 'file'

but it throws the 'SyntaxError: Unexpected token import' error.

I tried to:

  1. add require('babel-core/register') to the top of the nightwatch.conf.js
  2. add require('babel-register')() to the top of the nightwatch.conf.js
  3. npm i babel-plugin-add-module-exports --save-dev , and add "add-module-exports" plugin to the .babelrc config file
  4. npm i babel-preset-es2015 --save-dev , and add es2015 preset to the .babelrc config file
  5. add

    require('babel-core')
    require('babel-loader')
    require('babel-plugin-add-module-exports')
    require('babel-polyfill')
    require('babel-preset-stage-2')
    require('babel-preset-es2015')
    

to the top of the nightwatch.conf.js

All this didn't help. What should I do to make import/export works?

Yi Jiang
  • 46,385
  • 16
  • 133
  • 131
Evgeniy
  • 420
  • 4
  • 14

1 Answers1

12

Appears I was very close, the one thing missed from my attention:

I had

"presets": [
    ["es2015", { "modules": false }]
  ],

and { "modules": false } was the blocking thing. So, to make import/export works you need:

1 At the top of nightwatch.config

require('babel-register')() // or require('babel-core/register')

2 .babelrc should contain

{
  "presets": ["es2015"],
  "plugins": [
    "add-module-exports",
  ]
}

3 install babel

npm i babel-plugin-add-module-exports babel-core babel-preset-es2015 --save-dev
Community
  • 1
  • 1
Evgeniy
  • 420
  • 4
  • 14