首先安装 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 无法解析并令其卡住的内容。
所以,大佬们觉得,这到底是什么原理,真的很迷糊。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.