DS's TechBlog
[Jenkins] Frontend CI/CD: NodeJS 설치, 적용 에러 해결 본문
프론트엔드 애플리케이션을 Jenkins를 통해 CI/CD 파이프라인으로 배포하는 과정에서, NodeJS 환경 설정과 관련된 문제가 발생했습니다. 이번 포스트에서는 NodeJS 도구를 Jenkins Global Tool Configuration에 등록하고, 이를 Declarative Pipeline에서 사용하는 방법 및 발생한 오류 메시지와 해결 방법을 공유하고자 합니다.
Version
Jenkins 2.502, NodeJS Plugin 1.6.4, NodeJS 18
NodeJS Plugin 적용기

먼저, Jenkins Plguins에서 NodeJS Plugin을 설치했습니다.

그리고, Jenkins Tools에서 Install from nodejs.org로 위와 같이 설정을 하고 프론트엔드 배포 파이프라인을 실행해 보았습니다. (다른 블로그에선, Version 부분이 드롭다운 메뉴로 나타나던데, 저는 입력칸만 있었습니다.)

하지만, 배포 파이프라인에서 npm: not found 에러와 함께 파이프라인이 실패했습니다. Jenkins Tools에서 설정한 NodeJS가 제대로 동작하지 않는 것 같았습니다.

NodeJS 설치 URL을 직접 적어주는 방식으로 변경해보았습니다. 다운로드 URL은 https://nodejs.org/en/download 에서 확인할 수 있습니다. (여기서, 반드시 tar.gz 로 끝나는 주소를 입력하셔야 합니다.) Subdirectory of extracted archive는 위의 url로 다운 받은 압축 파일 안의 폴더 이름을 적으시면 됩니다. 그리고, 적용하면 npm: not found 에러가 사라지게 됩니다!
NodeJS 빌드 래퍼 적용기

npm: not found 에러는 사라졌지만, 새로운 에러가 발생했습니다. witthNodeJS 라는 메서드를 찾을 수 없다고 합니다. 해당 부분의 젠킨스 파일은 ChatGPT의 도움을 받아서 아래와 같이 작성했습니다.
stage('Build Frontend') {
steps {
echo 'Installing dependencies and building the frontend with npm...'
// withNodeJS 블록 내에서 실행하면 NodeJS18이 PATH에 추가됩니다.
withNodeJS('NodeJS18') {
dir('frontend_web') {
sh 'npm --version' // 설치된 npm 버전을 확인해볼 수 있음
sh 'npm install'
sh 'npm run build'
}
}
}
}
여기서, withNodeJS의 method가 존재하지 않는다고 합니다. NodeJS를 Jenkinsfile에서 사용하는 방법을 https://plugins.jenkins.io/nodejs/ 페이지의 Example of the use of buildwrapper Jenkinsfile (Declarative Pipeline) 부분에서 확인할 수 있었습니다.
stage('Build Frontend') {
steps {
echo 'Installing dependencies and building the frontend with npm...'
nodejs(nodeJSInstallationName: 'NodeJS18') {
dir('frontend_web') {
sh 'npm --version'
sh 'npm install'
sh 'npm run build'
}
}
}
}
공식 문서에 따라 Jenkinsfile에서 nodejs(nodeJSInstallationName: 'NodeJS18') { ... } 블록을 사용해, NodeJS 도구를 활성화했습니다.

이번 포스트에서는 Jenkins와 NodeJS 플러그인을 사용하여 CI/CD 환경에서 Node.js를 설치하고 사용하는 과정에서 발생한 문제와 해결 방법을 공유했습니다. 공식 Node.js 배포 URL 사용, 그리고 Declarative Pipeline에서 nodejs 빌드 래퍼를 적용했습니다. 그 결과, Jenkins 빌드가 성공적으로 Node.js 환경을 구성하고, 프론트엔드 애플리케이션 빌드가 정상적으로 수행될 수 있었습니다. 이번 경험으로 공식문서가 중요하다는 것을 또 한 번 깨닫는 경험이 되었습니다. 읽어주셔서 감사합니다.
'Tools' 카테고리의 다른 글
[Nginx] Nginx + Jenkins 의 경로 문제 해결 (0) | 2025.03.29 |
---|---|
[Jenkins] Jenkins 컨테이너에서 Docker CLI 사용 문제 해결 (0) | 2025.03.25 |
[Jenkins] Jenkins Docker-Hub Push 권한 문제 트러블 슈팅 (0) | 2025.03.22 |
[Docker] Docker Compose에서 OpenVidu와 Spring Boot 연동 시 네트워크 문제 해결 (0) | 2025.01.29 |
[Docker] Windows + Docker Desktop에서 network_mode: host 적용 안되는 문제 (1) | 2025.01.29 |