ele*_*ype 18 node.js npm typescript visual-studio-code
我创建了一个npm
在一些根项目中使用的自定义库.该库是用TypeScript编写的.所有来源都在一个/src
文件夹下.
该tsconfig.json
库包含那些编译器选项:
"sourceMap": true
"outDir": "dist"
Run Code Online (Sandbox Code Playgroud)
该package.json
文件包含:
"main": "dist/src/index.js",
"typings": "dist/src",
"files": [
"src",
"dist"
],
Run Code Online (Sandbox Code Playgroud)
最后,生成的包包含生成的.js
文件,d.ts
文件和.ts
源文件:
- package.json
- /dist (`.js` and `d.ts` files)
- /src (`.ts` files)
Run Code Online (Sandbox Code Playgroud)
在已安装此自定义库的根项目中,我可以在调用从库导入的函数的行上添加断点,然后单步调试它以调试其代码,所有这些都在TypeScript中.这很棒!
但是,在Visual Studio代码中,当我按CTRL-单击从库导入的函数而不进行调试时,它会将我引导到d.ts
类型定义文件.我会prefere它带领到.ts
源文件!目前的方式,如果我需要查看实际的源代码,我必须自己浏览/src
库的文件夹/node_modules
.
有没有办法直接在VSCode中转到TypeScript源文件,而不是类型定义文件?
c_f*_*ich 15
从Typescript 2.9开始,可以用declarationMap
标志编译你的库
./node_modules/typescript/bin/tsc -p . --declarationMap
Run Code Online (Sandbox Code Playgroud)
这样做会创建一个声明映射文件(dist/ActionApi.d.ts.map
)和指向相应d.ts文件底部的地图的链接
//# sourceMappingURL=ActionApi.d.ts.map
Run Code Online (Sandbox Code Playgroud)
当VSCodes遇到这样的declarationMap时,它知道去哪里并直接引导你到源代码.
从 TypeScript 4.7 开始,有一个新Go to Source Definition
命令可以执行此操作。VS Code 1.68(2022 年 5 月)包含它。
如果您有早期的 VS Code 版本,您仍然可以通过安装JavaScript 和 TypeScript Nightly并遵循其文档来启用它:
为了确保您正在使用
typescript@next
:
- 在 VS Code 中打开 JavaScript 或 TypeScript 文件。
- 在 VS Code 命令面板中,运行
TypeScript: Select TypeScript version command
.- 确保您已
Use VS Code's version
选择
归档时间: |
|
查看次数: |
1781 次 |
最近记录: |