npm 包 typescript-library-boilerplate 使用教程

阅读时长 6 分钟读完

介绍

typescript-library-boilerplate 是一个基于 TypeScript 的 Node.js 库的模板,可以快速搭建一个基础的库项目结构,包括npm scripts、测试用例、文档模板、CI/CD 集成等。本篇文章将介绍如何使用该模板创建一个 TypeScript 库项目。

前置条件

  • Node.js 环境
  • 包管理器:npm 或 yarn

安装

要使用此模板,可以通过 npm 或者 yarn 安装。

通过 npm

通过 yarn

使用方法

创建项目

使用以下命令创建一个新项目:

其中 my-library 是你要创建的项目名称。

项目结构

创建 my-library 后,可以看到以下文件结构:

-- -------------------- ---- -------
-----------
--- --------
-   --- ----------
-   -   --- ------
--- ----------
-   --- -------------
--- ----
-   --- --------
--- -------------
--- ----------
--- ----------
--- -------
--- ------------
--- ---------
--- -------------
--- --------- - -----------------

说明

  • __tests__:存放测试代码的文件夹;
  • src:存放源代码的文件夹;
  • .github: 存放 Github Actions 配置文件的文件夹;
  • .editorconfig:定义代码格式的文件;
  • .npmignore:npm 发布时需要忽略的文件列表;
  • LICENCE:许可证文件;
  • package.json:记录项目所使用的依赖库、脚本和版本等信息;
  • README.md:项目介绍文件;
  • tsconfig.json:TypeScript 的配置文件;
  • yarn.lock / package-lock.json:锁定安装包的版本。

项目初始化

在项目目录下执行以下命令,安装项目依赖:

此模板使用了以下依赖:

  • tslib:TypeScript 的标准库;
  • eslint:代码风格检查;
  • jest:测试框架;
  • huskylint-staged:用于执行 git commit 前的代码风格检查。

开发

src/index.ts 中开始写你的代码。

然后,在终端执行:

这将启动 tsc-watch,在源代码修改之后会重新编译。

测试

在写下测试之前,首先需要确保已为代码设置了适当的类型注解,这有助于更轻松地编写测试代码。

然后,在 __tests__ 目录中编写测试文件。例如,创建 src/index.test.ts 文件:

最后,运行下面的命令:

构建项目

构建项目是为了在将项目提交到 npm 之前,将 TypeScript 编译成 JavaScript 并将所有文件发送到 dist 目录中。

运行下面的命令来构建:

构建完成后,你将在 dist 目录中找到编译后的 JavaScript 代码。

发布

使用以下命令发布你的库:

Github Actions 集成

此模板包含一个管理 CI/CD 流程的 .github/workflows/ci.yml 文件。在每次向主分支进行提交后,它将运行您的测试代码、linter 和构建脚本,如果所有测试都通过,它将自动将包发到 npm registry。

但要使用 Github Actions,你需要先在 Github 上开启 Actions

结论

typescript-library-boilerplate 提供了一个完整的模板来创建基于 TypeScript 的 Node.js 库。此篇文章详细介绍了如何使用该模板创建和构建一个 TypeScript 库项目,并测试和部署它,希望能对你的开发工作提供帮助。

示例代码

你可以在了解了如何使用该模板后,根据你的需要,对其中的示例代码进行修改或删除。

-- -------------------- ---- -------
---
 - ---------
 - ------ --- -----
 - -------- --------- ---------
 --
------ -------- ------------- ----- ------- -
  ------ --- -- ------ --- --- ---------
-

---
 - ----------
 - ------ --- -----
 - -------- --------- ----------
 --
------ -------- ------------- ----- ------- -
  ------ ------ --- --- ---------
-

---
 - ---------
 - ------ --- -------
 - -------- -------- ---------
 --
------ -------- ------------------- -------- ------ -
  ------ ----------
-

---
 - ------- ----- -----
 --
------ -------- ----------- ---- -
  ------------------ ---------
-

---
 - --------
 - ------ --- ------
 - -------- -------- ---------
 --
------ -------- ---------------- -------------- ------ ------ -
  ------ ------------------- ----- ---
-

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005731681e8991b448e945e

纠错
反馈