Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to make es6 import/export works in Nightwatch test?

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?

like image 260
Evgeniy Avatar asked Feb 02 '17 16:02

Evgeniy


1 Answers

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
like image 142
Evgeniy Avatar answered Sep 20 '22 13:09

Evgeniy