【问题标题】:How do I install private packages using yarn inside a Github Action?如何在 Github Action 中使用 yarn 安装私有包?
【发布时间】:2020-02-14 05:32:16
【问题描述】:

我目前的工作流程:

name: Node CI

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest

    strategy:
      matrix:
        node-version: [10.x]

    steps:
      - uses: actions/checkout@v1
      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v1
        with:
          node-version: ${{ matrix.node-version }}
      - name: npm install, build, and test
        run: |
          npm install yarn -g
          yarn
          yarn test
        env:
          CI: true
          NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

我已经在回购秘密区域设置了我的NPM_TOKEN

该令牌也在 Netlify 上使用,并且 netlify 构建过程有效。

当此工作流程运行时,我的任何私人包都会收到 404。

我做错了什么?

【问题讨论】:

    标签: github npm yarnpkg github-actions


    【解决方案1】:

    我认为以下问题/答案可能是相关的。

    Yarn can't find private Github npm registry

    如果这是同样的问题,来自 npm 注册表的包代理还不适用于 yarn。

    【讨论】:

    • 那么纱线用户的解决方法是什么?有没有办法将 GH 包注册表与 yarn 一起使用?
    • 我对 npm/yarn 了解不多,所以说实话我不确定。 @guy-bowden 发布的解决方法在这种情况下不起作用吗?
    【解决方案2】:

    找到了解决办法:

    写出.npmrc 作为工作的一部分,而不是依赖环境变量。

    name: Node CI
    
    on: [push]
    
    jobs:
      build:
        runs-on: ubuntu-latest
    
        strategy:
          matrix:
            node-version: [10.x]
    
        steps:
          - uses: actions/checkout@v1
          - name: Use Node.js ${{ matrix.node-version }}
            uses: actions/setup-node@v1
            with:
              node-version: ${{ matrix.node-version }}
          - name: npm install, build, and test
            run: |
              echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > .npmrc
              npm install yarn -g
              yarn
              yarn test
            env:
              CI: true
    

    【讨论】:

      【解决方案3】:

      如果您有一个现有的 .npmrc 并且只想将令牌附加到现有文件而不是覆盖它,这对我有用。

      *** 注意:echo 包含一个 -e 参数和一个 \n 以添加换行符。此外,> 会覆盖 .npmrc 文件,而不是 >>,它会附加到 .npmrc 文件。

            - name: npm install, build, and test
              run: |
                echo -e "\n//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" >> .npmrc
                npm install yarn
                yarn
                yarn test
              env:
                CI: true
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-02-01
        • 2017-09-10
        • 2020-08-27
        • 2022-08-03
        • 1970-01-01
        • 2020-03-17
        • 1970-01-01
        相关资源
        最近更新 更多