본문 바로가기
Develop/Others

[npm] Github Actions로 npm publish 삽질기

by 3-stack 2021. 12. 18.

삽질1 - sh: 1: babel: not found

on:
  release:
    types: [created]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v2
        with:
          node-version: 12
      - run: npm install
      - run: npm test
  publish-npm:
    needs: build
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v2
        with:
          node-version: '12.x'
          registry-url: https://registry.npmjs.org/
      - run: npm publish --access public
        env:
          NODE_AUTH_TOKEN: ${{ secrets.npm_token }}

- relase가 created 되면, build -> publish-npm 처리하는 액션이다.

- 해당 액션이 실행되면 아래와 같이 babel 명령어를 찾지 못 한다.

- 애초에 typescript 모듈이 필요한 tsc 명령어는 잘 되었지만 혹시나 하는 마음으로 publish-npm 작업 단계에서 npm install 을 추가했지만 실패.

- 액션에서 처리하는 작업인 npm run build 를 수행하는 package.json > prepublishOnly 속성을 빼봤지만 실패. 

 

- 아래와 같이 build와 publish-npm 작업을 하나로 통합하니 해결되었다.

on:
  release:
    types: [created]
jobs:
  publish-npm:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v2
        with:
          node-version: '12.x'
          registry-url: https://registry.npmjs.org/
      - run: npm install
      - run: npm test
      - run: npm publish --access public
        env:
          NODE_AUTH_TOKEN: ${{ secrets.npm_token }}

 

삽질2 - 404 Not Found - PUT https://registry/npmjs.org/{npm패키지명} - Not found

- npm publish 액션 작업 중 위와 같은 에러가 나타나면, NPM 토큰 설정을 확인해보세요.

- Git Action 설정 파일에 토큰값을 공개할 수 없으니 Git Repository별로 Action Secrets 메뉴에서 토큰을 설정할 수 있어요.

 

1. https://www.npmjs.com/ 프로필 메뉴에서 Access Tokens을 확인하세요.

2. Generate New Token 으로 생성된 토큰값을 복사하세요.

3. Github Repository에서Settings 메뉴를 확인하세요.

4. Settings메뉴에서 New repository secret으로 복사한 NPM token을 입력해주세요.

댓글