본문 바로가기
카테고리 없음

ComfyUI package.json 설치 명령어, pnpm 옵션 구분하기

by GoingProdo 2026. 8. 27.

ComfyUI_frontend 소스를 직접 내려받은 뒤 package.json 의존성을 설치하려면 어떤 명령어를 써야 할까? 현재 공식 개발 문서에서는 프로젝트 루트에서 pnpm install을 실행하는 방식을 기본 설치 절차로 안내한다.

다만 GitHub Actions 같은 자동 빌드 환경에서는 같은 저장소가 pnpm install --frozen-lockfile을 사용한다. 두 명령어는 비슷해 보이지만 목적이 다르기 때문에 로컬 개발과 CI 환경을 구분해서 보는 것이 중요하다.

package.json 설치 명령어에서 가장 먼저 볼 변화

로컬 개발에서는 pnpm install부터 시작한다

ComfyUI_frontend의 공식 개발 절차는 저장소를 clone하고 프로젝트 디렉터리로 이동한 뒤 pnpm install을 실행하는 순서다.

이 명령은 package.json과 프로젝트의 dependency 정보를 기준으로 필요한 패키지를 설치한다. 처음 ComfyUI_frontend를 수정하거나 개발 서버를 실행하려는 경우라면 가장 먼저 사용할 명령어가 여기에 해당한다.

명령어는 프로젝트 루트에서 실행한다

터미널 위치도 중요하다. package.json과 pnpm-lock.yaml이 있는 ComfyUI_frontend 루트에서 명령어를 실행해야 현재 프로젝트의 의존성이 설치된다.

다른 디렉터리에서 pnpm install을 실행하면 의도한 package.json을 기준으로 동작하지 않을 수 있다. 따라서 설치 전에 현재 경로가 ComfyUI_frontend인지 먼저 확인하는 편이 좋다.

즉 package.json 파일 경로를 명령어 뒤에 직접 넣는 방식이 아니다. 프로젝트 디렉터리로 이동한 상태에서 pnpm이 package.json과 lockfile을 읽도록 하는 구조다.

CI에서는 --frozen-lockfile을 붙인다

ComfyUI_frontend의 현재 GitHub Actions workflow를 보면 dependency 설치 단계에서 pnpm install --frozen-lockfile을 사용하는 사례를 확인할 수 있다.

package.json 설치 명령어가 ComfyUI 워크플로우에 미치는 영향

이 옵션의 핵심은 설치 과정에서 lockfile을 임의로 갱신하지 않는 데 있다. package.json과 pnpm-lock.yaml이 서로 맞지 않는다면 설치를 진행하면서 lockfile을 고치는 대신 실패시키는 방향으로 동작한다.

기존 방식과 비교해야 할 부분

자동 빌드에서는 재현성이 더 중요하다

로컬 개발자는 dependency를 추가하거나 변경하면서 lockfile까지 갱신해야 할 수 있다. 반면 CI에서는 이미 저장소에 확정된 dependency 상태 그대로 설치되는지가 중요하다.

그래서 자동 테스트나 빌드에서는 --frozen-lockfile을 붙여 현재 커밋의 lockfile 상태를 그대로 검증하는 방식이 적합하다.

ComfyUI_frontend의 실제 CI에서도 Node.js 버전을.nvmrc 기준으로 준비하고 pnpm을 설정한 뒤 frozen lockfile 방식으로 dependency를 설치한다. 이후 build나 test 같은 다음 단계로 넘어간다.

lockfile을 수정해야 한다면 frozen 옵션을 쓰지 않는다

dependency를 새로 추가했거나 package.json이 변경됐다면 pnpm-lock.yaml도 함께 갱신되어야 할 수 있다. 이 상황에서 --frozen-lockfile을 사용하면 lockfile 불일치 때문에 설치가 실패할 수 있다.

ComfyUI_frontend의 Troubleshooting 문서에서도 lockfile conflict가 발생했을 때 pnpm-lock.yaml을 다시 만들고 pnpm install을 실행하거나 upstream lockfile을 받은 뒤 다시 설치하는 방법을 안내한다.

따라서 lockfile 자체를 다시 생성해야 하는 상황과 lockfile을 절대 변경하면 안 되는 상황을 구분해야 한다.

성능과 결과 품질에서 확인할 차이

워크플로우 구성에서 놓치기 쉬운 부분

쉽게 말하면 dependency 상태를 수정하는 작업에서는 일반 pnpm install, 저장소에 기록된 dependency 상태를 그대로 재현하는 작업에서는 pnpm install --frozen-lockfile이 기준이 된다.

package manager와 workspace 기준도 함께 본다

package.json이 있다고 해서 모든 프로젝트에서 반드시 npm install을 사용해야 하는 것은 아니다. ComfyUI_frontend 공식 개발 환경은 Node.js와 pnpm을 기준으로 구성되어 있다.

프로젝트에는 pnpm-lock.yaml과 workspace 설정도 함께 존재한다. 따라서 공식 저장소를 그대로 개발하거나 빌드하려는 경우에는 기존 package manager를 유지하는 편이 dependency 상태를 맞추기 쉽다.

workspace dependency도 pnpm 기준으로 관리한다

ComfyUI_frontend는 workspace 구조를 사용한다. 특정 workspace에 dependency를 추가해야 하는 경우에는 해당 workspace를 지정하는 pnpm 명령을 사용해야 할 수 있다.

package를 찾지 못한다고 해서 루트에서 무조건 dependency를 추가하기보다, 먼저 자신이 어느 workspace에서 작업하고 있는지를 확인하는 것이 좋다.

설치 명령어는 상황별로 이렇게 나눈다

ComfyUI_frontend에서 package.json 설치 명령어를 고를 때는 다음처럼 구분하면 된다.

실제로 적용할 때 체크할 점

처음 로컬 개발 환경을 만든다 → pnpm install

dependency를 추가하거나 lockfile을 갱신한다 → pnpm install

CI에서 저장소 상태 그대로 설치한다 → pnpm install --frozen-lockfile

lockfile conflict를 해결한 뒤 다시 설치한다 → pnpm install

특정 workspace dependency를 추가한다 → 해당 workspace를 지정한 pnpm 명령 사용

핵심은 package.json만 보고 설치 명령어를 고르는 것이 아니다. 현재 작업이 dependency를 변경하는 개발 단계인지, 이미 확정된 lockfile을 그대로 재현하는 빌드 단계인지 먼저 판단해야 한다.

마지막 확인

ComfyUI_frontend의 기본 package.json 설치 명령어는 프로젝트 루트에서 실행하는 pnpm install이다. 로컬 개발이나 dependency 변경 작업에서는 이 명령부터 사용하면 된다.

반대로 CI나 자동 빌드처럼 lockfile이 바뀌면 안 되는 환경에서는 pnpm install --frozen-lockfile을 사용한다. 설치가 실패했다면 명령어를 반복하기 전에 package.json과 pnpm-lock.yaml이 서로 맞는지부터 확인하는 것이 빠르다.