代码之家  ›  专栏  ›  技术社区  ›  Arsalan Khattak

如何使用GitHub Actions自动发布Typescript包?

  •  0
  • Arsalan Khattak  · 技术社区  · 6 年前

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

    我试着用 npm install 和 npm run build 创建a dist 然后在云中发布包,但它不起作用。它不会创建编译版本。 我看到的唯一解决方案是删除 /dist/ 从 .gitignore 并将其上传到云端,但有没有其他方法可以忽略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}}
    
    0 回复  |  直到 6 年前
        1
  •  2
  •   Antoine Eskaros    6 年前

    您必须在发布之前构建它,或者在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注册表。

        2
  •  0
  •   Iicytower    5 年前

    我也有类似的问题。在我完成了这里写的所有事情之后,action并没有将dist/folder添加到npm中。解决方案是创建.npmignore文件,并在tsconfig.json和所有ts文件(*.ts)中添加