如何让 es6 import/export 在 Nightwatch 测试中工作?

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

我想导入我的测试文件实用程序模块,它是用 ES6 编写的,可以导出我需要的一些东西。所以我做的是

import { module } from 'file'

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

我试过:

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

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

顶到nightwatch.conf.js

这一切都没有帮助。我应该怎么做才能使 import/export 正常工作?

看来我已经很接近了,我没有注意到一件事:

我有

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

和 { "modules": false } 是阻塞的东西。因此,要使 import/export 有效,您需要:

1 在 nightwatch.config

的顶部
require('babel-register')() // or require('babel-core/register')

2 .babelrc 应该包含

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

3 安装 babel

npm i babel-plugin-add-module-exports babel-core babel-preset-es2015 --save-dev