babel-jest with ES6 modules
我很高兴在启用实验性ES6模块选项(--experimental-modules)的情况下使用节点8.6。 这使我无需babel即可完美地为节点编写普通的ES2015代码。
问题是当我尝试用玩笑创建一些测试时,它无法抱怨语法错误:"意外的令牌导入"。
.babelrc配置如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 | { "env": { "test": { "presets": [ ["env", { "targets": { "node":"8.6" } }] ] } } } |
我的jest.config.js如下:
1 2 3 | module.exports = { testMatch: ['/tests/**/*.js', '**/?(*.)test.js'], } |
引发的错误:
1 2 3 4 5 6 7 8 9 | /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 () at Promise () |
相关套餐:
- babel-核心@ ^ 6.26.0
- 开玩笑@ ^ 21.2.1
- babel-jest@^21.2.0
- babel-preset-env@^1.6.0
任何帮助将不胜感激。
谢谢 :)
更新:我尝试使用以下命令在不使用babel的情况下调用jest,而未进行任何更改:
Jest具有
我不是开玩笑的,我不确定这是否可以解决,但是我希望这可以为您提供帮助。
Node仍然不支持所有语法。 如果您确实在寻找一种更快的方式来开始开发,请使用具有Ecmascript2017所有功能的源代码,则需要一个模块,例如@ kawix / core https://www.npmjs.com/package/@kawix/core
README.md的用法允许您使用所有功能,包括"导入"和"异步/等待",还支持打字稿以及其他良好的功能,而没有很多依赖。 您可以直接与cli一起使用:
1 2 | > npm install -g @kawix/core > kwcore /path/to/fullsyntaxtsupport.js |
或者,如果要以编程方式包含incl,请创建一个文件示例main.js来导入完整语法文件
1 2 3 4 5 | var kawix= require("@kawix/core") kawix.KModule.injectImport() kawix.KModule.import("/path/to/fullsyntaxtsupport.js").catch(function(e){ console.error("Some error:",e) }) |