如何解决如何使用 Jest 调整 Typescript StencilJS 以支持 ES6 动态模块导入
这里有许多类似问题 (...),但没有一个能帮助我获得纯 Stencil 配置。配置管理应该尽可能地留给 Stencil IMO (...)
我的 Stencil 组件工作正常,我几乎尝试了所有方法,但是需要导入 d3-geo
的 Jest 规范测试一直在抛出我:
SyntaxError: Unexpected token 'export'
/app/node_modules/d3-geo/src/index.js:1
({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){export {default as geoArea} from "./area.js";
^^^^^^
我错过了什么?
我可能可以使用 Babel 来完成这项工作,但这似乎很糟糕。而且我无法想象我们实际上需要 Babel 预洗来获得 ES6 模块支持。
应用详情:
- Node@14.16.0(来自 docker-image buildkite/puppeteer)
- Stencil@2.6.0
- Jest@26.6.3
- 打字稿@4.4.2
- 导致错误的模块:d3-geo@3.0.1
我在 package.json 中有开玩笑的配置:
...
"type": "module","jest": {
"testEnvironment": "jest-environment-node","transform": {}
},"main": "dist/index.cjs.js","module": "dist/index.js","es2015": "dist/index.cjs.js","es2020": "dist/index.js",...
"scripts": {
...
"test": "stencil test --spec --e2e",...
...
并且 tsconfig 包含:
...
"moduleResolution": "node","module": "esnext","target": "es2020",...
解决方法
您是否尝试将 "esModuleInterop": true
添加到您的 tsconfig.json 中? (link to TSConfig reference)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。