返回

组件库自动打包发布:解放你的双手,摸鱼不香吗?

前端

组件库自动化打包发布:解放你的双手,提升你的效率

作为一名程序员,组件库的维护和更新是我们的家常便饭。然而,传统的手动操作方式耗时费力,极易出错。为了解决这一痛点,开发一款脚本实现组件库的自动化打包发布势在必行。

准备工作:

起航之前,我们需要准备必要的工具和库,包括 Node.js、npm、git 和 lerna。

初始化项目:

创建新项目的根目录,执行如下命令初始化项目:

git init
npm init -y

安装依赖项:

在项目根目录安装必要的依赖项:

npm install --save-dev lerna husky

配置 Lerna:

接着,在项目根目录创建 .lernarc.json 文件,并添加以下内容:

{
  "packages": ["packages/*"],
  "version": "independent"
}

创建组件库:

现在,我们可以创建一个 packages 目录,并在其中创建子目录存放各个组件。

编写脚本:

接下来,我们在项目根目录创建一个 scripts 目录,并创建 build.js 文件,编写以下脚本:

const { exec } = require("child_process");

exec("lerna run build", (err, stdout, stderr) => {
  if (err) {
    console.error(err);
    return;
  }

  exec("lerna publish", (err, stdout, stderr) => {
    if (err) {
      console.error(err);
      return;
    }

    console.log("Components published successfully!");
  });
});

配置 Husky:

接下来,我们在项目根目录创建一个 .husky 目录,并创建 pre-commit 文件,添加以下内容:

#!/bin/sh

npm run build

使用说明:

万事俱备,只欠东风!在项目根目录执行如下命令:

npm run build

脚本会自动生成 changelog、构建组件库并发布到 npm 源。

总结:

自动化打包发布脚本的诞生,解放了我们的双手,极大地提高了工作效率。它不仅保障了代码质量和版本管理,更重要的是,它让我们可以将精力集中在更具创造性和挑战性的任务上。

如果你也有组件库自动打包发布的需求,不妨尝试一下我们的脚本,相信它会让你如虎添翼!

常见问题解答:

  • 如何定制脚本以适应我的组件库?
    脚本是高度可定制的。你可以修改 packages 目录以适应你的组件库结构,并根据需要调整脚本中的命令。

  • 脚本是否支持 monorepo?
    是的,脚本支持 monorepo。它将遍历 packages 目录中的所有子目录,并针对每个子目录执行构建和发布任务。

  • 如何处理依赖项冲突?
    脚本使用 lerna 的独立版本管理功能来避免依赖项冲突。每个组件都可以拥有自己的依赖项集,而不会影响其他组件。

  • 如何配置持续集成 (CI) 以使用该脚本?
    你可以将脚本添加到 CI 配置中,作为构建和发布步骤的一部分。这将使你的组件库在每次代码变更时自动打包和发布。

  • 脚本是否适用于所有类型的组件库?
    脚本适用于基于 npm 的组件库。它不支持其他类型的组件库,如 Maven 或 Gradle。