发布 npm 包

如何使用 buddy 的流水线自动发布私有npm包呢?

这里使用的是 buddy 的自主托管版本和 gitlab ce 。 npm 注册表使用的是 gitlab 的软件仓库。

在 buddy 里创建项目,将需要发布的项目代码 clone 下来。

如果是从 gitlab ce 上 clone ,使用 oAuth 方式可能会遇到问题。

本文使用的是个人令牌的方式。

为项目创建流水线,并在 操作 于运行 栏目下,选择添加按钮。然后选中 node.js 项。

之后,在运行栏目下,输入本次的命令

# yarn install
# 安装依赖
npm ci
# 配置注册表和令牌
npm config --location=project set @zhangtx:registry=https://$GITLAB_HOST/api/v4/projects/$GITLAB_PROJECT_ID/packages/npm/
npm config --location=project set //$GITLAB_HOST/api/v4/projects/$GITLAB_PROJECT_ID/packages/npm/:_authToken=$GITLAB_NPM_PUBLISH_PACKAGE_TOKEN
# 编译
npm run build
# 发布
npm publish

注意其中的 $ 开头的名称,它们是自定义变量。

–location=project 表示修改的是本项目的 .npmrc

@zhangtx 表示范围包。

GITLAB_HOST 是本次 gitlab ce 的域名,你也可以使用ip

GITLAB_PROJECT_ID 时本次项目在 gitlab ce 中的 项目ID。不是项目名称

GITLAB_NPM_PUBLISH_PACKAGE_TOKEN 是发布包时需要的令牌,可以从 gitlab ce的的 个人令牌中获取,注意范围要勾选api

接下来你可以尝试运行这个流水线。