我一直在关注这篇文章:
并一直在尝试设置我的打字稿项目以将其发布到 npm。
这一切似乎都说得通,但没有涵盖的是如何处理d.ts
文件。
我的项目看起来有点像这样:
src
node
server.ts
browser
client.ts
common
contracts.d.ts
所以当我用它编译它时"declaration": true
,"outDir: "dist"
我得到:
dist
node
server.js
server.d.ts
browser
client.js
client.d.ts
我的server.ts
文件和client.ts
文件都有
import {SomeType} from "../common/contracts";
因此,当其他人使用此包时,打字稿编译将失败,因为server.d.ts
两者client.d.ts
仍然具有此导入。
节点将运行良好client.js
,但server.js
没有此导入。tsc
必须删除d.ts
文件的导入。
我想要发生的是将contracts.d.ts
文件复制到 dist 文件夹作为构建的一部分。tsc
作为构建的一部分,我该如何做到这一点?
当前的解决方法
为了解决这个问题,我目前正在做的是将 my 重命名contracts.d.ts
为,contracts.ts
这意味着所有必需的文件都存在于 dist 文件夹中,但这确实意味着客户端和服务器都必须加载一个contracts.js
仅包含的空文件
"use strict";
//# sourceMappingURL=contracts.js.map