使用 actions/setup-node 时如何更改 github 操作中的 @yarn:registry

How do I change the @yarn:registry in github action when using actions/setup-node

我正在尝试安装 GSAP 3 with Shockingly Green 包。

以下是插件推荐的步骤。

//npm.greensock.com/:_authToken=XXXXXXXXXXXXXXXXXXXXXX
@gsap:registry=https://npm.greensock.com

yarn add gsap@npm:@gsap/shockingly

这是我在 github 操作中使用的工作流文件。

name: Deployment

on:
  push:
    branches: [ development ]

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2

    - uses: actions/setup-node@v1.4.4
      with:
        node-version: 14.16.0

    - name: Setup PHP with intl
      uses: shivammathur/setup-php@v2
      with:
        php-version: '7.4'
        extensions: intl-67.1

    - name: Install Composer
      run: sudo composer

    - name: Install dependencies
      run: |
        composer install -o
        yarn
      env:
        NPM_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }}

    - name: Build
      run: yarn build
      
    - name: Sync
      env:
        dest: 'root@XXXXXXXXXXX:/var/www/html/wp-content/themes/XXXXXXX'
      run: |
        echo "${{secrets.DEPLOY_KEY}}" > deploy_key
        chmod 600 ./deploy_key
        rsync -chav --delete \
          -e 'ssh -i ./deploy_key -o StrictHostKeyChecking=no' \
          --exclude /deploy_key \
          --exclude /.git/ \
          --exclude /.github/ \
          --exclude /node_modules/ \
          ./ ${{env.dest}}

我已经使用 GSAP 提供给我的代码添加了正确的秘密 NPM_AUTH_TOKEN。

但是我一直收到这个错误。

yarn install v1.22.17
warning package-lock.json found. Your project contains lock files generated by tools other than Yarn. It is advised not to mix package managers in order to avoid resolution inconsistencies caused by unsynchronized lock files. To clear this warning, remove package-lock.json.
[1/5] Validating package.json...
[2/5] Resolving packages...
[3/5] Fetching packages...
error An unexpected error occurred: "https://npm.greensock.com/@gsap%2fshockingly/-/shockingly-3.8.0.tgz: Request failed \"403 Forbidden\"".
info If you think this is a bug, please open a bug report with the information provided in "/home/runner/work/lacadives-theme/lacadives-theme/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
Error: Process completed with exit code 1.

我认为操作是 运行 错误的注册表。 有没有办法可以将注册表更改为 @gsap:registry=https://npm.greensock.com.

有两个问题需要解决。

  1. 正确设置 .npmrc
  2. 并删除 yarn.lock 文件

我的最终 yml 文件。

name: Deployment

on:
  push:
    branches: [ development ]

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2

    - uses: actions/setup-node@v1.4.4
      with:
        node-version: 14.16.0
        
    - name: Create NPMRC
      run: |
          echo "//npm.greensock.com/:_authToken=XXXXXXXXXXXXXXXXXXXXXXXXXXXX" >> ~/.npmrc
          echo "@gsap:registry=https://npm.greensock.com" >> ~/.npmrc

    - name: Setup PHP with intl
      uses: shivammathur/setup-php@v2
      with:
        php-version: '7.4'
        extensions: intl-67.1

    - name: Install Composer
      run: sudo composer

    - name: Install dependencies
      run: |
        composer install -o
        rm yarn.lock
        yarn

    - name: Build
      run: yarn build
      
    - name: Sync
      env:
        dest: 'root@XXXXXXX:/var/www/html/wp-content/themes/XXXXXXXXX'
      run: |
        echo "${{secrets.DEPLOY_KEY}}" > deploy_key
        chmod 600 ./deploy_key
        rsync -chav --delete \
          -e 'ssh -i ./deploy_key -o StrictHostKeyChecking=no' \
          --exclude /deploy_key \
          --exclude /.git/ \
          --exclude /.github/ \
          --exclude /node_modules/ \
          ./ ${{env.dest}}