【问题标题】:Testing with enzyme and mocha -- "Unexpected token import"使用酶和摩卡进行测试——“意外的令牌导入”
【发布时间】:2016-09-19 01:33:32
【问题描述】:

我正在尝试在https://github.com/lelandrichardson/enzyme-example-mocha 运行 Enzyme/Mocha 示例项目。我从 Github 上克隆了这个项目并运行了npm install。当我运行mocha 而不对项目进行任何其他更改时,这是我收到的输出:

/Projects/enzyme-example-mocha/test/Foo-test.js:1
(function (exports, require, module, __filename, __dirname) { import React from 'react';
                                                              ^^^^^^
SyntaxError: Unexpected token import
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:511:25)
    at Object.Module._extensions..js (module.js:550:10)
    at Module.load (module.js:456:32)
    at tryModuleLoad (module.js:415:12)
    at Function.Module._load (module.js:407:3)
    at Module.require (module.js:466:17)
    at require (internal/module.js:20:19)

我的node --versionv6.1.0,我的mocha --version2.4.5

如何让这个项目转译成 Node/Mocha 可以运行的东西?谢谢。

【问题讨论】:

    标签: node.js mocha.js babeljs enzyme


    【解决方案1】:

    你试过npm run test吗?我在package.json(在"scripts" 部分)看到了test 脚本,运行它,它第一次工作。

    npm run testmocha 的区别在于前者包含文件 test/.setup.js,它需要 babel-register 并执行它,这基本上就是您所说的缺少转译步骤。

    【讨论】:

      【解决方案2】:

      您可以在 .babelrc 中添加预设 2 设置。

      $ npm install --save-dev babel-preset-stage-2

      将以下行添加到您的 .babelrc 文件中:

      {
        "presets": ["stage-2","react","es2015"]
      }
      

      【讨论】:

      • 这不是必需的。该项目已经包含一个 .babelrc 文件,该文件具有 airbnb 预设,而这又需要 react 以及最低 es2015 支持。
      • @TylerCollier 不包括 stage-2-preset
      • 明白。但是为什么要添加stage-2?这是不必要的。你可以在没有stage-2 的情况下运行npm run test
      猜你喜欢
      • 2016-09-18
      • 1970-01-01
      • 2017-03-24
      • 2016-05-04
      • 2018-03-15
      • 2016-10-07
      • 2019-06-29
      • 2018-04-25
      • 2017-06-13
      相关资源
      最近更新 更多