Choorai
CI/배포 환경 빈번 이슈

Node 버전 불일치 해결하기

로컬에서는 되는데 CI에서만 실패하나요? Node.js 버전이 서로 다르면 빌드 결과가 달라질 수 있습니다.

TL;DR (핵심 요약)

1) 로컬/CI Node 버전 통일 2) .nvmrc 또는 engines 명시 3) 클린 설치 후 재빌드

주의

The engine "node" is incompatible with this module

원인

현재 실행 중인 Node 버전이 패키지가 요구하는 최소/최대 버전 조건과 맞지 않습니다.

해결책
  1. 프로젝트 권장 Node 버전을 명시
  2. CI에서도 같은 버전 사용
  3. node_modules 삭제 후 재설치

버전 고정 방법

.nvmrc
20
package.json
{
  "engines": {
    "node": ">=20 <21"
  }
}
.github/workflows/ci.yml
- uses: actions/setup-node@v4
  with:
    node-version: '20'
    cache: 'npm'

- run: npm ci
- run: npm run build

주의

lockfile이 오래되었거나 다른 Node 버전에서 생성된 경우, 버전을 맞춘 뒤 lockfile 재생성이 필요할 수 있습니다.

Prerequisites

  • 로컬 Node.js 버전(`node -v`)과 CI/배포 환경 버전을 확인할 수 있어야 합니다.
  • 프로젝트의 package.json engines 설정 여부를 확인할 수 있어야 합니다.
  • nvm 또는 volta 같은 버전 관리 도구를 사용할 수 있어야 합니다.

Validation

  1. 로컬/CI/배포의 Node.js major 버전이 동일합니다.
  2. npm ci 후 빌드가 동일하게 성공합니다.
  3. 런타임에서 ESM/CJS 관련 버전 오류가 재발하지 않습니다.

Troubleshooting

  • CI 설정 파일에서 Node 버전이 고정(pin)되어 있는지 확인하세요.
  • package-lock.json을 현재 Node 버전에서 재생성할 필요가 있는지 점검하세요.
  • 네이티브 모듈 사용 시 아키텍처 및 Node ABI 호환성을 확인하세요.

References

관련 문서

마지막 업데이트: 2026년 2월 22일 · 버전: v0.0.1

피드백 보내기

입력한 내용으로 새 이슈 페이지를 엽니다.

GitHub 이슈로 보내기