cypress 在 typescript 项目中报错找不到 'tslib'

cypresstypescript 项目运行报错如下:

1
2
3
4
5
6
7
An unexpected error occurred

Cannot find module 'tslib' Require stack:

C:\...\Cypress\resources\app\packages\reporter\lib\resolve-dist.js
C:\...\Cypress\resources\app\packages\server\lib\controllers\reporter.js
C:\...\Cypress\resources\app\packages\server\lib\routes.js

以上报错会出现在任何 typescript 项目下,只要安装 cypress 的上级目录中装有 typescript,不论是相隔多少层的上级目录,都会有以上的问题报错。

官方回答在 5.0 版本会修复此问题,参考:https://github.com/cypress-io/cypress/issues/7503

问题原因

瞅瞅项目下的 tsconfig.json,一定有如下配置 importHelpers

1
2
3
4
5
{
"compilerOptions": {
"importHelpers": true
}
}

importHelpers 官方说明:

Import emit helpers (e.g. '__extends', '__rest', etc..) from tslib. Requires TypeScript version 2.1 or later.(从 tslib 导入辅助工具函数(比如 __extends, __rest等))

问题完全是此配置造成的。

解决办法

  1. 将以上配置删除即可

  2. 将配置字段改为 false

本文由 linx(544819896@qq.com) 创作,采用 CC BY 4.0 CN协议 进行许可。 可自由转载、引用,但需署名作者且注明文章出处。本文链接为: https://blog.jijian.link/2020-08-11/cypress-typescript-cannot-find-module-tslib/

如果您觉得文章不错,可以请我喝一杯咖啡!