首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带ES6模块的babel-jest

带ES6模块的babel-jest
EN

Stack Overflow用户
提问于 2017-10-08 22:42:24
回答 2查看 2.8K关注 0票数 11

我很高兴地使用节点8.6,打开了实验性ES6模块选项(--实验性模块)。这使我能够完美地为节点编写普通的ES2015代码,而不需要babel。

问题是,当我尝试用jest创建一些测试时,它会失败,抱怨语法错误:“意外令牌导入”。

.babelrc配置如下:

代码语言:javascript
复制
{
  "env": {
    "test": {
      "presets": [
        ["env", {
          "targets": {
            "node": "8.6"
          }
        }]
      ]
    }
  }
}

我的jest.config.js如下:

代码语言:javascript
复制
module.exports = {
  testMatch: ['/tests/**/*.js', '**/?(*.)test.js'],
}

引发的错误:

代码语言:javascript
复制
    /app/tests/integration/controller/data-provider/Credentials/CredentialsList.action.test.js:2
    import { Credentials, AdWordsCredentials } from '../../../../../imports/models/data-provider/Credentials.mjs';
    ^^^^^^

    SyntaxError: Unexpected token import

      at ScriptTransformer._transformAndBuildScript (node_modules/jest-runtime/build/script_transformer.js:305:17)
          at Generator.next (<anonymous>)
          at Promise (<anonymous>)

相关一揽子计划:

  • babel-core@^6.26.0
  • jest@^21.2.1
  • babel-jest@^21.2.0
  • babel-预设-env@^1.6.0

任何帮助都将不胜感激。谢谢:)

更新:我尝试使用以下命令调用jest而不使用babel,没有任何更改:node --experimental-modules node_modules/.bin/jest

EN

回答 2

Stack Overflow用户

发布于 2017-12-30 18:32:40

Jest有一个自定义的require实现来帮助模拟。不幸的是,这使得jest与node --experimental-modules不兼容。Babel可能是使用带有jest的ES6模块的最佳方法。请参阅https://github.com/facebook/jest/issues/4842

票数 4
EN

Stack Overflow用户

发布于 2019-03-02 21:28:41

我没有被用来开玩笑,我也不确定这是否会解决,但我希望这能帮助你。

节点仍然不支持所有语法。如果您真的在寻找一种更快的开发方式,使用Ecmascript2017的所有特性的源代码,您需要一个像@kawix/core https://www.npmjs.com/package/@kawix/core这样的模块。

README.md如何说,允许您使用所有特性,包括“导入”和“异步/等待”,还支持类型记录,以及其他好的特性--所有这些特性都没有太多的依赖关系。您可以直接与cli一起使用:

代码语言:javascript
复制
> npm install -g @kawix/core
> kwcore /path/to/fullsyntaxtsupport.js

或者,如果希望以编程方式包含,请创建一个文件示例main.js,以导入完整的语法文件。

代码语言:javascript
复制
var kawix= require("@kawix/core")
kawix.KModule.injectImport()
kawix.KModule.import("/path/to/fullsyntaxtsupport.js").catch(function(e){
    console.error("Some error: ",e)
})
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46636788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档