我创建了一个在某些根项目中使用的自定义npm
库。该库是用TypeScript编写的。所有来源都在/src
文件夹下。
库的tsconfig.json
包含那些编译器选项:
"sourceMap": true
"outDir": "dist"
package.json
文件包含:
"main": "dist/src/index.js",
"typings": "dist/src",
"files": [
"src",
"dist"
],
最后,生成的包中包含生成的.js
文件,d.ts
文件和.ts
源文件:
- package.json
- /dist (`.js` and `d.ts` files)
- /src (`.ts` files)
在已安装此自定义库的根项目中,我可以在调用从库导入的函数的行上添加断点,然后单步调试它以调试其代码,所有这些都在TypeScript中。这很棒!
但是,在Visual Studio代码中,当我按CTRL-单击从库导入的函数而不进行调试时,它会将引导到d.ts
类型定义文件< / em>的。我会优先将引导到.ts
源文件!目前的方式,如果我需要查看实际的源代码,我必须自己浏览到/src
下/node_modules
文件夹的文件夹。
有没有办法直接在VSCode中转到TypeScript源文件,而不是类型定义文件?
答案 0 :(得分:6)
从Typescript 2.9开始,可以使用declarationMap
标志编译您的库
./node_modules/typescript/bin/tsc -p . --declarationMap
这样做会创建一个声明映射文件(dist/ActionApi.d.ts.map
),并在相应d.ts文件底部创建指向该映射的链接
//# sourceMappingURL=ActionApi.d.ts.map
当VSCodes遇到这样的clarificationMap时,它知道要去的地方,并直接带您到源代码。
答案 1 :(得分:2)
当您进行调试时,实际上你会落入具有源地图的实际js。所以,你觉得你喜欢打字稿来源。
但TypeScript和VSCode对库的来源一无所知。当TypeScript查找导入的库时,它会搜索package.json,然后查找字段“typings”,并使用那里指定的文件。
有理由,为什么库为TypeScript提供d.ts和.js,而不是源本身。如果库提供源,那么您将需要编译它们。这很奇怪而且效率不高,因为:
这就是为什么所有的库已经编译成js,带有.d.ts声明。
如果你真的想看到图书馆资源(顺便说一句,为了什么?),那么只需将图书馆资源复制到你的src目录,然后将其从家属中删除。
答案 2 :(得分:2)
在配置中设置Application.Dialogs(xlDialogSaveAs).Show Range("A10") & Range("B3") & Range("B4")
。