从本地链接的节点包调试使用 tsc 编译的 Typescript
Debug Typescript compiled with tsc from locally linked node package
我们的 React/React 本机项目是使用 Typescript 构建的。我们有一个使用 React Native 构建的移动项目,以及一个由 React Native 客户端和 React 前端使用的共享私有包。
由于我们经常更改共享包,因此我们在依赖项中本地链接包,例如 "our_shared_package": "*"
和文件系统中的符号链接 node_modules/our_shared_package
。即使包是用Typescript编写的,我们在运行项目之前手动运行tsc
进行更改以生成相应的JS。
一切正常,尽管每当我调试并进入由 tsc
生成的代码时,它不会进入 .ts
文件,而是进入生成的 .js
文件包含许多丑陋的代码(尤其是等待程序、异步函数、承诺等),使其极难调试。如果我将断点放入外部包中的 .ts
文件中,它不会命中。我在 React Native 应用程序中调试 .ts
没有问题,只是共享代码不能很好地与调试器一起使用。
如何使 Vscode 正确命中使用 tsc
构建的外部包中的 .ts
文件而不是输出 JS 文件?
我不熟悉 VSCode,但我认为它使用源映射,就像大多数其他工具一样。因此,您需要将以下内容添加到 tsconfig.json
:
{
"compilerOptions": {
"sourceMap": true
}
}
我们的 React/React 本机项目是使用 Typescript 构建的。我们有一个使用 React Native 构建的移动项目,以及一个由 React Native 客户端和 React 前端使用的共享私有包。
由于我们经常更改共享包,因此我们在依赖项中本地链接包,例如 "our_shared_package": "*"
和文件系统中的符号链接 node_modules/our_shared_package
。即使包是用Typescript编写的,我们在运行项目之前手动运行tsc
进行更改以生成相应的JS。
一切正常,尽管每当我调试并进入由 tsc
生成的代码时,它不会进入 .ts
文件,而是进入生成的 .js
文件包含许多丑陋的代码(尤其是等待程序、异步函数、承诺等),使其极难调试。如果我将断点放入外部包中的 .ts
文件中,它不会命中。我在 React Native 应用程序中调试 .ts
没有问题,只是共享代码不能很好地与调试器一起使用。
如何使 Vscode 正确命中使用 tsc
构建的外部包中的 .ts
文件而不是输出 JS 文件?
我不熟悉 VSCode,但我认为它使用源映射,就像大多数其他工具一样。因此,您需要将以下内容添加到 tsconfig.json
:
{
"compilerOptions": {
"sourceMap": true
}
}