Github Action Deploy "generatePackageJson": true

agnusdei·2023년 7월 5일
0
post-custom-banner

"generatePackageJson": true
  1. nx 프로젝트의 경우 최상위 root 에서 npm 모듈을 관리합니다. 따라서 모든 프로젝트마다 해당 generatePackageJson 를 선언할 필요는 없습니다.

server, admin, client, landing 구조라면 필요한 부분 (server, admin) 에서만 하도록 설정하는 게 일반적입니다.

  1. 설정 추가하기
  2. github workflows 폴더 생성 및 deploy_server.yml 확장자 파일 생성
name: Deploy Server

on:
  push:
    branches:
      - 'develop'
    paths:
      - 'apps/server/**'
  workflow_dispatch:

jobs:
  deploy_server:
    runs-on: self-hosted
    steps:
      - uses: actions/checkout@v3
      - name: Install Dependencies
        run: npm install --force
      - name: Build Project
        run: |
          nx build server --configuration production
          rm -rf c/workspace/프로젝트명/server
          mkdir c/workspace/프로젝트명/server
          cp -r dist/apps/server c/workspace/프로젝트명/server
          cp ecosystem.config.js c/workspace/프로젝트명/server/ecosystem.config.js
          cp .env.serve.production c/workspace/프로젝트명/server/.env
          cd c/workspace/프로젝트명/server
          npm install --production
          pm2 restart ecosystem.config.js --update-env
  1. 작성 예시 (푸쉬하면 바로 배포 하도록 설정)

https://docs.github.com/ko/actions/using-workflows/workflow-syntax-for-github-actions

generatePackageJson 속성은 Angular 프로젝트 설정 파일에서 사용되는 속성이 아니며, 기본적으로 Angular CLI에 내장되어 있는 속성이 아닙니다. 따라서 generatePackageJson 속성은 일반적인 Angular 프로젝트 설정 파일에서 지원되지 않습니다.

그런데 이 속성은 NRWL(Nx) 프로젝트의 설정 파일인 nx.json에서 사용되는 속성입니다. NRWL은 Angular 애플리케이션 및 라이브러리를 관리하고 스케일링하기 위한 도구로, nx.json 설정 파일을 사용하여 프로젝트의 빌드 및 실행 관련 설정을 구성합니다.

generatePackageJson 속성은 주로 Nx 프로젝트에서 사용되며, 다음과 같은 목적으로 사용됩니다:

  1. Package.json 파일 생성: generatePackageJson 속성이 true로 설정되면, Nx 프로젝트에서 실행할 때 해당 프로젝트에 대한 별도의 package.json 파일이 생성됩니다. 이 파일은 프로젝트의 의존성 관리 및 실행을 위한 설정을 포함합니다. 이렇게 하면 각 Nx 프로젝트가 자체 의존성을 관리하고 구성할 수 있습니다.

  2. 독립적인 빌드 및 실행: 각 Nx 프로젝트가 자체 package.json 파일을 가지면, 해당 프로젝트를 독립적으로 빌드하고 실행할 수 있습니다. 이는 대규모 응용 프로그램에서 여러 프로젝트를 동시에 관리하는 데 도움이 됩니다.

post-custom-banner

0개의 댓글