버그 발생 정보
"scripts": {
"build": "npm run build:server && npm run build:assets"
}
npm run build를 터미널에 입력하자 아래의 오류 메시지가 출력되었다.
node:internal/crypto/hash:71 this [kHandle] = new _Hash(algorithm, xofLen); ^ Error: error:0308010C:digital envelope routines::unsupported at new Hash.... 파일경로 중략
{ opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ], library: 'digital envelope routines', reason: 'unsupported', code: 'ERR_OSSL_EVP_UNSUPPORTED' }
스택 오버플로우에서 찾은 결론
nodejs 버전문제:
webpack이 지원하는 node.js버전이 현재 내 pc에서 사용 중인 것과 다르다.
해결방법 두 가지:
1.nodejs를 16 버전으로 다운그레이드하기
2.open ssl의 legacy를 허용하기
해결방법
nodejs를 다운그레이드하여 문제를 해결했다.
사용도구
NVM: Node Version Manager = 노드 버전 관리자.
사용자 명령프롬포트 (cmd)에서 노드의 버전을 관리할 수 있게
해 준다.
여러 가지
버전의
nodejs를
설치 및
사용할
수 있다.
macOs:
https://github.com/nvm-sh/nvm
window:
https://github.com/coreybutler/nvm-windows/releases
해결과정
1. nvm설치 매니저 다운로드
아래 링크에서 window용 nvm 설치 매니저를 다운로드할 수 있다
nvm-setup.zip를 다운로드하자.
2. nvm 설치
다운로드한 파일( nvm 설치 매니저)을 통해
nvm을 nodejs가 설치된 경로에 설치한다.
nodejs의 기본위치:
c/programfiles/nodejs
3. 구버전 노드 다운 및 사용설정
윈도 명령 프롬포트(cmd)에 다음과 같은 명령어를 입력하여
노드를 다운그레이드한다.
nvm install 16.20.0 // 16.20.0 버전의 노드설치
nvm use 16.20.0 // 16.20.0 버전의 노드 사용하기
node -v // 현재 사용중인 버전의 노드확인
이후 다시 터미널에 npm run build를 실행하자
오류 없이 정상적으로 실행되었다.
아래 블로그를 참조했습니다.
열심히 구글링 하고 게시글을 작성하고 보니,
노마드 슬랙에 설명이 일찍이 올라와있었다.
그래도 게시물 하나 남긴 걸 위안으로 삼자.
읽어주셔서 감사합니다.
오류나 오탈자는 댓글로 알려주세요