返回

rollup & api-extractor 打包发布库的技巧和注意事项

前端

背景

随着前端项目的日益复杂,代码的复用变得越来越重要,这不仅可以提高开发效率,还可以保证代码的一致性和可靠性。而类库作为一种代码复用的有效手段,也得到了广泛的应用。

简介

rollup 是一个流行的 JavaScript 模块打包工具,它可以将多个 JavaScript 模块打包成一个或多个文件,以方便在浏览器或 Node.js 中使用。

API Extractor 是一个用于提取 TypeScript 代码的 API 文档的工具,它可以帮助开发人员生成完整的 API 文档,以方便其他开发人员理解和使用类库。

步骤

1. 项目初始化

首先,我们需要创建一个新的 TypeScript 项目,并安装必要的依赖项:

mkdir my-library
cd my-library
npm init -y
npm install typescript rollup api-extractor

2. 创建代码

接下来,我们需要创建我们的类库代码。在本例中,我们将创建一个简单的计算器类库:

export class Calculator {
  add(a: number, b: number): number {
    return a + b;
  }

  subtract(a: number, b: number): number {
    return a - b;
  }

  multiply(a: number, b: number): number {
    return a * b;
  }

  divide(a: number, b: number): number {
    return a / b;
  }
}

3. 配置 Rollup

接下来,我们需要配置 Rollup 以便它可以将我们的代码打包成一个 JavaScript 文件。为此,我们需要在项目中创建一个 rollup.config.js 文件:

import typescript from "@rollup/plugin-typescript";

export default {
  input: "src/index.ts",
  output: {
    file: "dist/index.js",
    format: "umd",
  },
  plugins: [
    typescript(),
  ],
};

4. 配置 API Extractor

接下来,我们需要配置 API Extractor 以便它可以提取我们的代码的 API 文档。为此,我们需要在项目中创建一个 api-extractor.json 文件:

{
  "project": {
    "name": "my-library",
    "root": "src",
    "tsconfig": "tsconfig.json",
    "entryPoints": [
      "./src/index.ts"
    ],
    "mainEntryPointFilePath": "src/index.ts",
  },
  "apiReport": {
    "enabled": true,
    "reportFileName": "docs/api-report.md"
  }
}

5. 构建

现在我们可以运行 Rollup 来构建我们的类库了:

npx rollup -c

6. 发布

最后,我们可以将我们的类库发布到 npm:

npm publish

技巧和注意事项

  • 使用单一职责原则来设计你的类库。这意味着每个类库都应该只做一件事,并且应该做得很好。
  • 使用接口来定义你的类库的公共 API。这将使你的类库更容易被其他开发人员使用。
  • 使用类型注释来注释你的代码。这将使你的代码更易于阅读和理解。
  • 使用单元测试来测试你的代码。这将确保你的代码是正确的。
  • 使用持续集成来自动化你的构建和测试过程。这将使你能够更快的发现和修复错误。
  • 使用代码覆盖率来衡量你的代码的测试覆盖率。这将帮助你确保你的代码被充分测试。
  • 使用文档来记录你的类库。这将使其他开发人员更容易理解和使用你的类库。

总结

使用 rollup 和 api-extractor 打包和发布类库是一个相对简单的过程,但也有很多需要注意的地方。通过遵循本文中的步骤和技巧,你可以更有效和可靠地发布你的类库。