【发布时间】:2018-08-03 18:33:24
【问题描述】:
我有点困惑如何最好地开发多个打字稿模块与代码导航并行并仍然以正确的方式发布。那么我应该在 package.json “types” 字段中真正放入什么?
根据:Typescriptlang.org/publishing.html
我应该像这样引用我生成的index.d.ts:
{
"name": "awesome",
"author": "Vandelay Industries",
"version": "1.0.0",
"main": "./lib/main.js",
"types": "./lib/main.d.ts"
}
如果我随后使用 npm link 并行开发一个依赖于这个模块的模块,例如 vscode 中的代码导航让我直接跳到这个定义文件中。这不是我想要的。
我想进入源文件以便能够在 dep 中并行编辑。没有带有源映射的 tsconfig 设置,内联或没有在这方面有所帮助。我可能在这里遗漏了一些东西。我管理工作流程以正常工作的唯一方法是实际指向源 main.ts 文件:
{
"name": "awesome",
"author": "Vandelay Industries",
"version": "1.0.0",
"main": "./lib/main.js",
"types": "./src/main.ts"
}
但是,这会在发布时破坏,对吗?
至少如果我将 src 放在 .npmignore 下。我无法理解拥有多个打字稿模块的良好工作流程的最佳方式。
我的意思是,我不想在发布过程中破坏 package.json ......?
【问题讨论】:
-
这应该在 vscode 和所有其他应该使用 TypeScript 的 IDE 中修复(WebStorm 代码导航的行为方式相同)。理想情况下,“转到定义”应该检查
d.ts文件是否在node_modules下的符号链接目录中,然后找到实际的源目录并以某种方式找到生成.d.ts的.ts文件。 -
@artem 如果启用了sourcemap,那么为什么不启用
tsconfig.json中的sourcemap呢? -
@Yu sourcemaps 用于将生成的 javascript 代码中的位置映射到源文件中的位置。这个问题是关于从源文件中的符号位置到另一个打字稿源文件中定义符号的位置。我不确定源地图在这里有什么帮助。
-
在 TypeScript 2.9 中有一个新选项 --declarationMap 将生成一个额外的
.d.ts.map映射从.d.ts到.ts,但我怀疑你需要在监视模式下运行以保持.d.ts.map是最新的。 -
你找到解决这个问题的方法了吗?
标签: typescript visual-studio-code