解决 toBeInTheDocument does not exist

问题描述

pnpm安装create-react-app创建的typescript模板应用依赖,执行pnpm run start会出现错误Property 'toBeInTheDocument' does not exist on type 'Matchers<HTMLElement>'

1
2
3
4
5
pnpm dlx create-react-app --template typescript

pnpm i

pnpm run start

问题原因

问题的原因是pnpm V7以上的版本默认不提升@types的依赖,导致typescript编译时在node_modules/@types目录下找不到testing-library/jest-dom的类型定义,因此报错。参考链接:

问题解决

修改.npmrc配置,把types的依赖提升至根目录,然后重新安装依赖

1
2
## ~/.npmrc
public-hoist-pattern[]=*types*

参考:public-hoist-pattern

联系我