如何在Nightwatch测试中使es6导入/导出工作?

Evg*_*niy 7 node.js nightwatch.js

我想导入我的测试文件实用程序模块,它是用ES6编写的,并导出了我需要的几件东西.所以我做的是

import { module } from 'file'
Run Code Online (Sandbox Code Playgroud)

但它会抛出'SyntaxError:Unexpected token import'错误.

我试过了:

  1. 添加require('babel-core/register')到nightwatch.conf.js的顶部
  2. 添加require('babel-register')()到nightwatch.conf.js的顶部
  3. npm i babel-plugin-add-module-exports --save-dev ,并将"add-module-exports"插件添加到.babelrc配置文件中
  4. npm i babel-preset-es2015 --save-dev ,并将es2015预设添加到.babelrc配置文件中
  5. require('babel-core')
    require('babel-loader')
    require('babel-plugin-add-module-exports')
    require('babel-polyfill')
    require('babel-preset-stage-2')
    require('babel-preset-es2015')
    
    Run Code Online (Sandbox Code Playgroud)

到了nightwatch.conf.js的顶部

这一切都无济于事.我该怎么办才能进口/出口?

Evg*_*niy 9

出现我非常接近,一件事从我的注意力中错过:

我有

"presets": [
    ["es2015", { "modules": false }]
  ],
Run Code Online (Sandbox Code Playgroud)

和{"modules":false}是阻塞的东西.因此,要进行导入/导出工作,您需要:

1在nightwatch.config的顶部

require('babel-register')() // or require('babel-core/register')
Run Code Online (Sandbox Code Playgroud)

2 .babelrc应该包含

{
  "presets": ["es2015"],
  "plugins": [
    "add-module-exports",
  ]
}
Run Code Online (Sandbox Code Playgroud)

3安装babel

npm i babel-plugin-add-module-exports babel-core babel-preset-es2015 --save-dev
Run Code Online (Sandbox Code Playgroud)