Jest测试引入esm依赖问题

发布于 2022-09-12 03:33:38 字数 769 浏览 25 评论 0

我项目使用了esm版的@pika/react,导致jest执行出错Unexpected token 'export'

能想到的解决方法有如下:

  1. 提升本地node版本到v13.2.0+,native支持esm规范;
  2. 配置jest的moduleNameMapper参数,把单元测试文件的react引用指向commonjs规范的react包;
  3. transformIgnorePatterns参数中增加白名单让@pika目录下的文件经过babel转一下。

我是打算用第3种方法的,但是没有效果:

// jest.config.js
transformIgnorePatterns: [
    "node_modules/(?!@pika/)"
]
// .babelrc
{
  "presets": [
    [
      "react-app"
    ]
  ]
}

不知道是我正则写错了还是其他什么原因?


PS:我是想尝试下尤大的新打包工具vite,它的本地开发体验会比传统的webpack静态打包好很多,我初步浏览了下源码,vite会起个本地的koa服务截获浏览器的资源请求,根据资源类型进行转译或直接返回,尤其在频繁更改文件时不会像webpack那样总是重新编译,每次要等好久。

vite要求第三方依赖包得是esm规范的,但是在node端执行的jest就有我现在遇到的问题了。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文