遇到一个神奇的 Bug

1次阅读

共计 575 个字符,预计需要花费 2 分钟才能阅读完成。

首先安装 3 个东西:

npm i concurrently tsx mysql2

现在创建 xxx.ts 或者 xxx.js:

import {Charsets} from 'mysql2'
// 从 mysql2 里面任意导入一个对象
console.log(Charsets == null)

发生了如下现象:

  • [正常]    运行 tsx xxx.ts,正常输出 false
  • [正常]    运行 tsx watch xxx.ts,正常输出 false
  • [正常]    运行 concurrently "tsx xxx.ts",正常输出 [0] false
  • [错误]    运行 concurrently "tsx watch xxx.ts",卡死了,无任何输出

也就是说,concurrently + tsx watch + mysql2 == 卡死?

有没有大佬知道这是怎么回事的。

非常好复现的 Bug,请看小视频演示:https://files.imdodo.com/dodo/b1c472301aaff11ad9966242d9e5aac4.mp4


翻了下 concurrently 的官方文档,发现启用 –raw 参数,输出原始的打印内容,就不会卡住。

所以应该是 tsx watch 模式下,并且是以任意方式导入了 mysql2 这个包,tsx 就会输出某些让 concurrently 无法解析并令其卡住的内容。

所以,大佬们觉得,这到底是什么原理,真的很迷糊。

正文完
 0