【问题标题】:How to use GitHub Actions to Auto Publish Typescript Package?如何使用 GitHub Actions 自动发布 Typescript 包?
【发布时间】:2021-02-15 21:21:37
【问题描述】:

每当我将代码推送到主分支时,我都会使用 GitHub 操作自动发布我的 npm package。问题出在我的.gitignore 中,我添加了/dist/ 文件夹。因此,当我将代码推送到云端时,它会忽略 dist 文件夹,我只想发布 dist 文件夹。我该怎么做?

我尝试使用npm installnpm run build 在云中创建dist 文件夹,然后发布包,但它不起作用。它不会创建编译版本。 我看到的唯一解决方案是我从 .gitignore 中删除 /dist/ 并将其上传到云端,但有没有其他方法可以忽略 dist 并使用 Github Actions 将其自动发布到 npm?

这是我的.yml 文件

name: NPM Publish

on:
  push:
    branches:
      - master

jobs:
  release:
    name: Pubish
    runs-on: ubuntu-latest
    steps:
      - name: ⏬ checkout
        uses: actions/checkout@v2.1.1
      - name: ???? Node
        uses: actions/setup-node@v1.4.2
        with:
          node-version: 12
          registry-url: https://registry.npmjs.org
      - name: ???? Publish
        run: npm publish --access public
        env:
          NODE_AUTH_TOKEN: ${{secrets.NPM_AUTH_TOKEN}}

【问题讨论】:

    标签: node.js typescript github npm github-actions


    【解决方案1】:

    您必须在发布之前构建它,或者在您的 package.json 文件中添加预发布脚本。

    即:

      - name: Build
        run: npm run build
      - name: ? Publish
        run: npm publish --access public
    

    或者 在 package.json 中

      ...
      "scripts": {
      ...
      "prepublish": "npm run build",
    }
    

    它没有构建的原因是它没有 node_modules 所以你还需要安装它们并最好使用缓存。

    所以你需要在构建之前添加到你的 yaml 文件中。

    - name: install
      run: npm install
    

    或者如果您使用的是锁定文件,(不适合包)

    - name: install
      run: npm ci
    

    请尝试同时使用缓存而不是重载 npm 注册表。

    【讨论】:

    • 这也会在 repo 中创建 dist 文件夹,对吧?发布包后,如果 GitHub Action 删除了该 dist 文件夹,是否有可能?另外,如果我使用prepublish,是否需要添加npm install
    • 它根本不会在你的 repo 中创建 dist 文件夹。是的,在所有情况下,您都需要 npm installnpm ci
    【解决方案2】:

    我遇到了类似的问题。在我完成了这里写的所有内容之后,操作不会将 dist/ 文件夹添加到 npm。解决方案是创建 .npmignore 文件并添加到 tsconfig.json 和所有 ts 文件(*.ts)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-21
      • 2020-12-08
      • 1970-01-01
      • 1970-01-01
      • 2021-12-10
      • 2021-12-20
      • 2020-07-25
      • 1970-01-01
      相关资源
      最近更新 更多