”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 使用 TypeScript 和语义版本控制创建并发布 npm 库

使用 TypeScript 和语义版本控制创建并发布 npm 库

发布于2024-11-07
浏览:869

?编写并发布最少的代码

要在 npm 上发布库,您需要:

  1. 一个npm 帐户;您可以在这里注册。

  2. 您的代码作为一个项目;即,您的代码目录中有一个 package.json,其中指定了名称和版本。请注意,您可以通过以下方式生成此文件:

npm init
  1. 项目中的index.js。请记住,您需要导出函数才能允许用户导入它。

注意: 如果您的脚本未命名为index.js并放置在项目根目录中,则需要在package.json中指定“main”属性。有关更多信息,请参阅此答案。

如果该名称已在 npm 上使用,您可以添加 @name-or-org/your-lib 等前缀;这就是当今大多数其他图书馆所做的。

你可以查看我的最小示例以供参考,但我相信你可以写出比这更酷的东西。

Create and publish an npm library, with TypeScript and Semantic Versioning

最后用CLI命令发布:

npm publish

Create and publish an npm library, with TypeScript and Semantic Versioning

设置带有前缀的包名称时请注意:必须是您在 npm 上注册的 npm 用户名或组织名称。例如,我可以使用 @remi_guan 作为我的前缀,但不能使用其他前缀。

此外,您需要运行 npmpublish --access public,因为 npm 认为您想要发布私有包,这是一项付费功能。

有这个输出就说明已经成功了。不过,如果您遇到问题,可以通过 Google 搜索来排除故障。以下是您如何使用自己的库:

Create and publish an npm library, with TypeScript and Semantic Versioning

如果您一直在遵循本指南,请尝试使用您自己的库。

如果您想了解更多信息,我还发现@backendbro 有比这更详细的指南。

发布代码后,当您想要更新代码时,可以再次运行 npmpublish。不过,在发布之前,您应该更新package.json的版本属性,并请遵守语义版本控制。

我建议你尝试一下!您能否发布您的库的 v1.0.1 或 v1.1.0,并在另一个项目中使用它,就像我刚刚所做的那样?你能弄清楚如何更新你的 npm 库的版本吗?

?使用打字稿

到目前为止,我们创建的这个库还不是现代的,它缺少类型声明,因此使用您的库的人无法通过键入来突出显示。此外,人们通常使用带有 ECMAScript 语法的 TypeScript。要了解差异,请参阅 Saisathish 的《Node.js 模块:CommonJS 与 ECMAScript》

但是我将在这篇文章中跳过 TypeScript 的详细设置。有很多很好的教程可以学习如何初始化 TypeScript 项目,例如 inapeace0 的“如何开发 Typescript 库”。

更进一步,您可以使用模板 TypeScript 存储库,例如 alexjoverm/typescript-library-starter,它已经集成了许多现代工具、最佳实践等。

如果您要发布 TypeScript 库,我只想提一些重要的注意事项:

  1. 发布前构建。如果需要公开发布,拥有最普通Node.js环境的人只能执行.js文件。所以你需要使用 tsc、rollup(或 vite,它使用 rollup)或 webpack 来编译你的代码;任何一个都可以。

您需要使用package.json中的module、main或entry属性正确指向编译后的文件。使用模板并一一学习是一个不错的选择。再次,alexjoverm/typescript-library-starter 很好地指定了它们。

  1. 包含 .d.ts 文件。出于同样的原因,用户还需要访问类型签名。

但是,如果您确定您的库将在 Deno、Bun 或 ts-node 上运行,您可以忽略我的上述准则,因为它们支持本机运行 TypeScript 代码。

请尝试按照指南创建 TypeScript 库并将其发布到 npm。这仍然很简单,就像第一个例子一样。您应该使用导入语法在另一个项目中对其进行测试,并且您可以使用 IDE 查看类型提示。

使用 TypeScript,我可以用以下语法编写我的库:

Create and publish an npm library, with TypeScript and Semantic Versioning

发布后,我可以安装并导入它,并通过 TypeScript 查看类型提示。

Create and publish an npm library, with TypeScript and Semantic Versioning

✨ 语义版本控制

有一个常见但稍微高级的问题等待解决:每次更新包时,我们都需要编辑版本代码。

这很烦人,特别是如果您经常更新代码。

但是,有一些工具可以帮助您。

  • 语义释放:全自动;您可以将其集成到 GitHub CI 中,以便每次在 GitHub 上更新代码时自动更新版本代码并发布到 npm。
  • release-it:也可以帮助你提升版本,但使用起来很简单(不需要 CI 知识);同时,您没有将其配置为完全自动化。

Create and publish an npm library, with TypeScript and Semantic Versioning

我使用 ChatGPT 生成了比较这两个工具的摘要。对于新程序员,我建议你尝试release-it,但是如果你知道如何将它与CI集成,semantic-release也很方便。

在这篇文章中,我将向您展示如何使用release-it,好吧,在您对项目进行更改后,只需在您的项目中运行它:

npx release-it

然后选择是小改动还是大改动,然后就完成了!

Create and publish an npm library, with TypeScript and Semantic Versioning


概括

所以你就有了!我们已经完成了发布一个简单的 npm 库、更新它,甚至使用 TypeScript 使其更加现代和健壮。记住:

  • 正确导出您的函数以便其他人可以使用它们。
  • 更新您的版本号遵循语义版本控制。
  • 考虑使用 TypeScript 以获得更好的类型安全性和开发人员体验。
  • 使用release-it或semantic-release等工具自动化发布以节省时间。

试试吧!发布您自己的库,更新它,看看为 npm 生态系统做出贡献的感觉如何。快乐编码!

版本声明 本文转载于:https://dev.to/remi-guan/create-and-publish-an-npm-library-with-typescript-and-semantic-versioning-9l?1如有侵犯,请联系[email protected]删除
最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3