简介
在本指南中,你将创建一个 GitHub Actions 工作流来测试代码,然后将其发布到 GitHub Packages。
发布你的软件包
-
在 GitHub 上创建一个新仓库,并添加 Node 的
.gitignore。更多信息请参见 创建新仓库。 -
将仓库克隆到本地机器。
git clone https://github.com/YOUR-USERNAME/YOUR-REPOSITORY.git cd YOUR-REPOSITORY -
创建一个
index.js文件,并添加一个基本的 alert,显示“Hello world!”JavaScript console.log("Hello, World!");console.log("Hello, World!"); -
使用
npm init初始化一个 npm 包。在包初始化向导中,输入你的包名称:@YOUR-USERNAME/YOUR-REPOSITORY,并将测试脚本设为exit 0。这将生成包含包信息的package.json文件。$ npm init ... package name: @YOUR-USERNAME/YOUR-REPOSITORY ... test command: exit 0 ... -
运行
npm install生成package-lock.json文件,然后提交并推送更改到 GitHub。npm install git add index.js package.json package-lock.json git commit -m "initialize npm package" git push -
创建一个
.github/workflows目录。在该目录下,创建一个名为release-package.yml的文件。 -
将以下 YAML 内容复制到
release-package.yml文件中。YAML name: Node.js Package on: release: types: [created] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - uses: actions/setup-node@v4 with: node-version: 20 - run: npm ci - run: npm test publish-gpr: needs: build runs-on: ubuntu-latest permissions: packages: write contents: read steps: - uses: actions/checkout@v5 - uses: actions/setup-node@v4 with: node-version: 20 registry-url: https://npm.pkg.github.com/ - run: npm ci - run: npm publish env: NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}name: Node.js Package on: release: types: [created] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - uses: actions/setup-node@v4 with: node-version: 20 - run: npm ci - run: npm test publish-gpr: needs: build runs-on: ubuntu-latest permissions: packages: write contents: read steps: - uses: actions/checkout@v5 - uses: actions/setup-node@v4 with: node-version: 20 registry-url: https://npm.pkg.github.com/ - run: npm ci - run: npm publish env: NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}} -
使用以下方法之一告诉 npm 将软件包发布到哪个作用域和注册表
-
通过在根目录创建一个包含以下内容的
.npmrc文件,为仓库添加 npm 配置文件@YOUR-USERNAME:registry=https://npm.pkg.github.com -
编辑
package.json文件并指定publishConfig键"publishConfig": { "@YOUR-USERNAME:registry": "https://npm.pkg.github.com" }
-
-
提交并推送更改到 GitHub。
$ git add .github/workflows/release-package.yml # Also add the file you created or edited in the previous step. $ git add .npmrc or package.json $ git commit -m "workflow to publish package" $ git push -
你创建的工作流将在仓库中创建新发布时运行。如果测试通过,软件包将发布到 GitHub Packages。
要进行测试,请在仓库中转到 Code(代码)选项卡并创建一个新发布。更多信息请参见 在仓库中管理发布。
查看已发布的软件包
你可以查看所有已发布的软件包。
-
在 GitHub 上,导航至仓库的主页面。
-
在仓库的右侧边栏,点击 Packages(软件包)。

-
搜索并点击你想查看的软件包名称。
安装已发布的软件包
现在你已经发布了软件包,想在各项目中将其作为依赖使用。更多信息请参见 使用 npm 注册表。
后续步骤
你刚添加的基本工作流会在仓库创建新发布时运行。但这仅是 GitHub Packages 能力的起点。你可以使用单个工作流将软件包发布到多个注册表,触发工作流在不同事件(如合并的拉取请求)运行,管理容器等。
将 GitHub Packages 与 GitHub Actions 相结合,可帮助你自动化几乎所有的应用开发流程。准备开始了吗?以下是帮助你进一步使用 GitHub Packages 和 GitHub Actions 的资源。
- 学习 GitHub Packages,获取关于 GitHub Packages 的深入教程
- 编写工作流,获取关于 GitHub Actions 的深入教程
- 使用 GitHub Packages 注册表,了解具体用例和示例