在Typescript发布的第9个年头,很多大型项目都已经使用Typescript开发,比如我们要讲到的Vue3。

Typescript是javascript的超集,它需要被编译成js才能被浏览器运行。那我们想要对代码进行调试的时候,还需要编译再写DEMO吗?是否可以直接基于jest来调试呢?答案是可以的。

以Vue3项目举例。

项目初始化

git clone <https://github.com/vuejs/vue-next.git> vue3
cd vue3
yarn

调试

这里以 reacitivity 模块为例:

在 ./packages/reactivity/tests/effect.spec.ts 任意一处添加 debugger语句。

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/a12b47b4-5a3f-4dc8-80c9-bdee8e46258a/Untitled.png

打开控制台,在vue3目录下运行此命令:


node --inspect-brk node_modules/.bin/jest --runInBand ./packages/reactivity/__tests__/effect.spec.ts

打开chrome浏览器,输入 chrome://inspect/#devices,界面如下:

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/968cbe13-07ac-4b9b-b5ce-b04792387a18/Untitled.png

点击 inspect,就可以开始调试啦。

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/01a1c89a-4a5b-4503-8860-f3bc5fe890d5/Untitled.png