gpt4 book ai didi

javascript - NPM 模块 + TypeScript 最佳实践

转载 作者:搜寻专家 更新时间:2023-10-30 21:24:39 25 4
gpt4 key购买 nike

我想用 TypeScript 编写一个 npm 模块。有人可以向我推荐如何入门的最佳实践指南吗?

我的问题是:

  • Node.js 不直接支持 TypeScript,对吗?那么推荐的发布 npm 模块的方式是怎样的呢?制作 2 个文件夹/ts/js 并在 package.json 中引用 js/index.js 作为入口点。或者使用某种运行时转换器并直接运行 TypeScript 文件?还是不建议在 npm 模块中发布任何 TypeScript 代码并将其编译为普通 Javascript 并在 Git 存储库中提供 TypeScript 源代码?

  • 推荐的打字支持方式是什么?我看到我可以在我的 package.json 中引用 Typing 文件。他们可以在线吗,我应该为他们提供 npm 模块还是应该根本不发布 ts 和 dtd 文件?使用 typings 安装它们并提供 typings.json?

  • 如果我想为我的代码提供输入支持,推荐的方法是什么?即使我的模块非常小和简单(做一件事并把它做好),提供一些信息和自动完成支持可能会很有用。我还是 TypeScript 的新手,所以不确定最好的方法是什么。我猜想编写一个接口(interface)并将其与我的 npm 模块一起提供。这些文件是否应该稍后上传到 DefinitelyTyped 目录,或者这是否仅适用于较大的图书馆?

我很想在这里了解如何使用当前的 TypeScript 和 Node 版本正确执行此操作,因为我发现的很多信息都已过时,涉及 autodts、tsd 等内容。

如果有人能帮助我,我很高兴。一旦我知道这是如何以正确的方式完成的,我将制作文档并在 Github 上为其他人提供这些信息。

干杯

最佳答案

对于您的第一个问题:是的,您必须先转换 typescript 代码,然后才能发布您的 npm 包,但您可以通过确保在 package.json 中包含此内容来非常轻松地做到这一点:

  "scripts": {
"prepublish": "tsc",
}

构建文件的最佳实践是使用例如ts 文件的 src 目录,然后是 js 文件的根目录或另一个目录(例如 dist)。您可以通过在 tsconfig.json 中定义“outDir”来进行设置:

"compilerOptions": {
[...]
"outDir": "dist"
}

这里接受的答案中的链接也帮助我解决了类似的问题:Writing NPM modules in Typescript

至于你关于 npm 包中的类型的问题:为了在当前的 typescript 版本中提供类型,你不需要更改 package.json 中的任何内容。您可以将名为 index.d.ts 的文件添加到包的根级别。如果有人使用你的模块, typescript 会自动在那里找到输入。

关于javascript - NPM 模块 + TypeScript 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37639567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com