如何在Nightwatch测试中使用es6的import/export功能?

10

我想在我的测试文件中导入一个实用模块,该模块是用ES6编写的并导出了我需要的一些内容。那么我要做的就是:

import { module } from 'file'

但是它会抛出“SyntaxError:Unexpected token import”错误。

我尝试了以下方法:

  1. 在nightwatch.conf.js的顶部添加require('babel-core/register')
  2. 在nightwatch.conf.js的顶部添加require('babel-register')()
  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')
    

将其置于nightwatch.conf.js文件的顶部。

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

1个回答

13

看起来我很接近了,但有一件事情逃过了我的注意:

我有

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

而 { "modules": false } 是阻碍问题的东西。所以,为了使导入/导出工作正常,您需要:

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

1
对我有用-只需注意步骤(3)还应安装babel-core - Steve Cooper
谢谢!+1 为 babel-core 安装说明。 - Daniel Ram

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接