【问题标题】:How to transpile ES6 imports in Chai? [duplicate]如何在 Chai 中转译 ES6 导入? [复制]
【发布时间】:2016-04-23 12:13:21
【问题描述】:

我正在为 React 应用程序使用最少的设置:

  • 网页包
  • 通天塔
  • 反应 + 通量
  • Mocha 和 Chai 用于测试

我现在想测试我的应用。

我有一个 .babelrc,内容如下:

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

我的测试是这样的:

import { expect, assert } from 'chai';
import AppStore from '../src/js/stores/app-store';

describe('app store', () => {
  assert.equal(3,3);
});

当我将第二次导入注释掉时,它可以工作。

当我导入我的 AppStore 时,我收到以下错误消息:

(function (exports, require, module, __filename, __dirname) { import { dispatch, register } from '../dispatchers/app-dispatcher';
                                                              ^^^^^^

SyntaxError: Unexpected token import

所以,我显然是在转译 test.js 文件,但导入不会转译为 ES5。

我能做什么,最小的设置是什么样的(不使用 Grunt 或其他)。

编辑:我在 package.json 中的节点脚本如下所示:

  "scripts": {
    "dev": "webpack && webpack-dev-server",
    "test": "mocha --compilers js:babel-core/register --recursive"
  },

【问题讨论】:

  • mocha --compilers js:babel-core/register --recursive 应该是 mocha --compilers js:babel-register --recursive。视c的不同版本而定。

标签: javascript mocha.js babeljs


【解决方案1】:

我遇到了同样的问题。在 stackoverflow 及其他方面尝试了所有其他解决方案后,package.json 上的这个简单配置为我做到了:

  "babel": {
    "presets": [
      "es2015"
    ]
  }

在那之后我所有的 ES6 导入都工作了。 顺便说一句,我在 webpack.config.js 中也有相同的配置,但显然这是使它也适用于 mocha 测试的唯一方法。

【讨论】:

    猜你喜欢
    • 2016-01-03
    • 2018-04-21
    • 2016-06-07
    • 1970-01-01
    • 2018-04-17
    • 1970-01-01
    • 2017-05-21
    相关资源
    最近更新 更多