首页
学习
活动
专区
圈层
工具
发布

如何发布一个 TypeScript 编写的 npm 包

前言在这篇文章中,我们将使用TypeScript和Jest从头开始构建和发布一个NPM包。我们将初始化一个项目,设置TypeScript,用Jest编写测试,并将其发布到NPM。...npm包可以在这里找到。GitHub仓库地址在这里。初始化项目让我们从创建空目录并初始化它开始。...npm i -D jest @types/jest ts-jestts-jest包是Jest理解TypeScript所需要的。另一个选择是使用babel,这将需要更多的配置和额外的模块。...注册成功后,通过你的终端用npm login登录。我们离发布我们的新包只有一步之遥。不过,还有几件事情需要处理。首先,确保我们的package.json中拥有正确的元数据。...总结我们从头开始创建并发布了一个简单的npm包。我们的库提供了一个ESM模块,TypeScript的类型,使用jest覆盖测试用例。你可能会认为,这其实一点都不难,的确如此。

2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何发布一个 TypeScript 编写的 npm 包

    前言 在这篇文章中,我们将使用TypeScript和Jest从头开始构建和发布一个NPM包。 我们将初始化一个项目,设置TypeScript,用Jest编写测试,并将其发布到NPM。...npm包可以在这里[1]找到。GitHub仓库地址在这里[2]。 初始化项目 让我们从创建空目录并初始化它开始。...npm i -D jest @types/jest ts-jest ts-jest包是Jest理解TypeScript所需要的。另一个选择是使用babel,这将需要更多的配置和额外的模块。...注册成功后,通过你的终端用npm login登录。 我们离发布我们的新包只有一步之遥。不过,还有几件事情需要处理。 首先,确保我们的package.json中拥有正确的元数据。...总结 我们从头开始创建并发布了一个简单的npm包。 我们的库提供了一个ESM模块,TypeScript的类型,使用jest覆盖测试用例。 你可能会认为,这其实一点都不难,的确如此。

    2.5K20

    使用typescript编程实现npm包的开发、测试和发布过程

    使用typescript编程实现npm包的开发、测试和发布过程 以下是使用 TypeScript 进行 npm 包开发、测试和发布过程的步骤: 以上是使用 TypeScript 进行 npm 包开发、测试和发布过程的基本步骤...以下是使用 TypeScript 进行 npm 包开发、测试和发布过程的步骤: 创建项目目录并初始化:在终端中运行 npm init 命令,按照提示完成项目初始化。...创建源代码目录:在项目根目录中创建一个 src 目录,并在其中编写 TypeScript 代码。 编写代码:在 src 目录中编写你的 npm 包的代码。...确保你的代码符合 TypeScript 的语法规范,并且按照 npm 包的开发规范编写。...以上是使用 TypeScript 进行 npm 包开发、测试和发布过程的基本步骤。你可以根据具体的需求和项目情况进行调整和扩展。

    24910

    如何自己写一个公用的NPM包

    本文作者:IMWeb 钌子_rawbin 原文出处:IMWeb社区 未经同意,禁止转载 以markdown-clear,创建过程为例,讲解整个NPM包创建和发布流程 1 如何创建一个包 1.1...初始化NPM包 使用npm init 初始化工程 按照提示填入相应的内容 1.6 到这里的目录结构 工程三大件以及npm包配置文件都有了 markdown-clear ------------- .gitignore...--------- src // 源代码目录 比如coffee,typescript,es6+等代码的目录 -------------- lib // 转义生成的代码目录,比如babel...添加 npm 命令 "scripts": { "build": "babel src -d lib", } 2.2.2 实现一个可以全局安装的npm包 添加package.json的配置...3 发布NPM包 npm文档 如果没有注册npm账户 npm adduser USERNAME 如果没有登录 npm login 登录后发布包,在工程目录下执行 npm publish

    97520

    如何自己写一个公用的NPM包

    以markdown-clear,创建过程为例,讲解整个NPM包创建和发布流程 1 如何创建一个包 1.1 创建并使用一个工程 在GitHub上新建一个仓库,其名markdown-clear clone...初始化NPM包 使用npm init 初始化工程 按照提示填入相应的内容 1.6 到这里的目录结构 工程三大件以及npm包配置文件都有了 markdown-clear ------------- .gitignore...--------- src // 源代码目录 比如coffee,typescript,es6+等代码的目录 -------------- lib // 转义生成的代码目录,比如babel...添加 npm 命令 "scripts": { "build": "babel src -d lib", } 2.2.2 实现一个可以全局安装的npm包 添加package.json的配置...3 发布NPM包 npm文档 如果没有注册npm账户 npm adduser USERNAME 如果没有登录 npm login 登录后发布包,在工程目录下执行 npm publish

    2.1K100

    如何使用 npm 执行本地安装 npm 包里的二进制文件

    例如,像 webpack、eslint、typescript 这样的工具,它们本质上都是可以在命令行中直接执行的二进制文件。...例如,全局安装 typescript 后,可以直接在命令行中输入 tsc 来执行 TypeScript 编译器。本地安装:本地安装是指将 npm 包安装到项目的 node_modules 目录下。...举例说明假设你在一个项目中安装了 typescript 和 eslint:npm install typescript eslint安装完成后,typescript 和 eslint 的二进制文件将分别被放置在...为什么使用本地安装的 npm 包?使用本地安装的 npm 包有几个显著的优势:项目隔离:每个项目可以有自己的依赖包和版本,确保不同项目之间的依赖不会冲突。...因为依赖包是本地安装的,CI 流水线不会受到开发者本地环境中可能存在的全局包的影响,从而确保构建的一致性和可重复性。总结本地安装的 npm 包的二进制文件在 Node.js 项目中起着至关重要的作用。

    1.4K10

    npm 上的虚假 WhatsApp API 包可窃取消息、联系人和登录令牌

    网络安全研究人员披露了 npm 存储库中一个新恶意软件的详细信息,该软件可以作为功能齐全的 WhatsApp API 运行,但同时也具备拦截每条消息并将攻击者的设备与受害者的 WhatsApp 帐户关联起来的能力...更重要的是,该库的设计灵感来源于@whiskeysockets/baileys,这是一个基于 WebSocket 的 TypeScript 库,用于与 WhatsApp Web API 进行交互。...“除了正常使用 API 之外,无需任何特殊操作。后门配对码也会在身份验证过程中激活——因此,当你将应用连接到 WhatsApp 时,攻击者的设备就会立即被关联。”...恶意 NuGet 包瞄准加密生态系统#此次披露正值 ReversingLabs分享了14 个恶意 NuGet 包的详细信息之际,这些包冒充 Nethereum(一个用于以太坊去中心化区块链的 .NET...值得注意的是,GoogleAds.API 软件包专注于窃取 Google Ads OAuth 信息,而非窃取钱包数据密钥。

    13410

    如何规范地发布一个现代化的 NPM 包?

    举个例子,如果你使用 TypeScript,你可以创建两个版本的包代码: 通过在 tsconfig.json 中设置 "target"="esnext",生成一个用现代 JavaScript 的 esm...无论你选择使用哪种策略,都应该记录下来,以便开发者了解你的库是如何进行版本控制的。 你还应该在 changelog 中记录你的更改。...换句话说,exports 的表现像是给你的库用户查看的公共 API,帮助定义哪些是外部的哪些是内部的。...列出要发布的 files files 定义你的 NPM 包中要包含哪些文件 files 决定 npm CLI 在打包库时哪些文件和目录包含到最终的 NPM 包中。...例如,如果你将代码从 TypeScript 编译为 JavaScript,你可能就不想在 NPM 包中包含 TypeScript 的源代码。(相反,你应该包含 sourcemap)。

    2.9K20

    从 package.json 来聊聊如何管理一款优秀的 Npm 包

    频繁业务迭代背景下,如何尽量语义化的迭代 NPM 包版本。 也许,你并不了解 Package.json 开始之前大家可以思考一个在平常不过的小问题: Axios 大家或多或少都会使用过。...接下来,我们来看看 exports 字段究竟应该如何使用: 路径封装 首先 exports 字段可以对于包中导出的路径进行封装。 比如下面的代码: { // 表示该包仅存在默认导出,默认导出为 ....频繁业务迭代下的 Npm 包版本应该如何管理 关于 Npm Version 相关的信息,不太清楚的同学可以查阅春哥的这篇semver:语义版本号标准 + npm的版本控制器。...这个章节其实主要想和大家交流一些关于频繁业务迭代下 Npm 包版本仅可能语义化自己的看法。 设想目前的业务场景下,多人在同步开发一款 NPM 包。...那么,我们能否将分支名和对应的 NPM 包版本进行关联呢,如果将分支和 NPM 包版本进行了关联,其实就很容易实现我们上述的需求:确定单一功能迭代下的包版本号语义化。

    1.6K10

    如何基于Python实现MySQL查询的API设计,附上完整脚本

    ,但是基于数据库版本的差异,有些低版本是不支持输出一些格式的,所以使用Shell来输出SQL查询的结果显然不是一个通用而且优雅的实现方式。...如果使用数据库启动,基于Python的模式就是一种很不错的选择,我们可以开发一个Python脚本,然后把这个Python脚本使用RESTful API的模式包装起来,这样对外的服务就是API而不是单一的脚本...首先对于SQL查询来说,输出结果,执行时长,结果集行数等这些是我们关注的一些数据,要实现这个功能,实际上要实现一揽子细小的功能。...:sql_text=sys.argv[3]db_port=sys.argv[1]db_name=sys.argv[2] 为了封装为一个API,逻辑的部分实现有以下几个要点: 1)调用Python脚本,...实现的代码如下: @api_view(['POST']) def mysql_db_query(request): try: request_data = request.data.get

    1.7K30

    Node.js 语音通知接口接入指南:基于 NPM 包的语音 API 开发与异步集成方案

    本文聚焦基于NPM包的集成方案,拆解接口调用底层原理,提供可直接复用的异步集成代码,解决NPM包选型、异步处理、异常排查等核心痛点,帮助开发者快速、规范地完成Node.js语音通知接口的接入。...二、Node.js语音通知接口核心原理与NPM包选型2.1接口调用核心原理拆解Node.js语音通知接口的本质是基于HTTP/HTTPS协议的客户端与服务端交互,核心流程可拆解为4个关键步骤:参数准备:...目前行业内提供语音通知服务的厂商,其接口规范均适配这一核心逻辑,且兼容主流NPM包的调用方式,降低了集成门槛。...2.2主流NPM包对比与选型建议选择合适的NPM包是高效集成Node.js语音通知接口的关键,以下是主流方案的对比分析:表格NPM包名称核心优势潜在问题适用场景axios支持Promise、拦截器、超时控制...三、基于NPM包的Node.js语音通知接口实战集成3.1环境准备与依赖安装首先安装核心依赖包,axios用于发送HTTP请求,md5用于生成动态密码:bash运行展开代码语言:TXTAI代码解释#安装

    9010

    性能吊打 Node.js 和 Deno 的新一代 javaScript 运行时!

    Bun.js 的目标是可以在浏览器之外的其他地方运行世界上大多数 JavaScript,为你未来的基础架构带来性能和复杂性的增强,并通过更好、更简单的工具提高开发者的生产力! 性能表现如何?...服务端渲染:每秒处理 HTTP 请求数 加载一个巨大的 sqlite 表:每秒平均查询次数 FFI:每秒操作数 为啥这么快?...Bun.js 的大部分内容都是完全从零开始编写的,包括 JSX/TypeScript 转译器、npm 客户端、打包器、SQLite 客户端、HTTP 客户端、WebSocket 客户端等等。...CLI 命令:bun install:兼容 npm 的包管理器,使用最快的系统调用来复制文件。 根据测试,bun 比 npm 的包安装速度快 20 倍。...Bun 目前还处于 beta 阶段,距离生产环节还有一段路要走,大家觉得它的未来究竟如何呢?

    1.2K10

    npm publish package 发布流程

    假设项目需要使用这些封装好的 API 就要自己再复制粘贴一份,假设如果发现其中有可改进或者修改的地方,那么就需要自己再将这些修改后的文件覆盖到每一个使用过的项目中。...: | 项目的 git 存储库地址 // Q7:keywords: | 描述包的关键字,用于在 npmjs 上查询关键字 // Q8:author: | 作者名字,可以使用 npmjs 名称、npmjs...07 - 将包从 npm 上删除 // 需要先登录 npm unpublish 包名 // 即可将 npm 上的包删除 error: cannot be republished until 24 hours...我自己封装好的 Web Storage API 已经发布到 npm publish 上了。 目前还只是支持 Vue 项目。 计划支持非 Vue 的普通 web 项目也可以使用(开发进行中)。...计划把 indexedDB API 也集成封装进去(开发进行中)。 ReactJs、AngularJs 有很好的 npm 包了,暂时不考虑支持。

    3.5K110
    领券