webpack run dev error 1: SyntaxError: Invalid regular expression
webpack run dev를 테스트 하던 중 아래와 같이 SyntaxError가 떴다.
SyntaxError: Invalid regular expression: /(\p{Uppercase_Letter}+|\p{Lowercase_Letter}|\d)(\p{Uppercase_Letter}+)/: Invalid escape
위의 에러는 nodejs의 버전이 실행하려고 하는 npm 패키지에서 지원하지 않는 버전일 때 나타나는 오류 이므로, nodejs 버전을 업그레이드 또는 다운그레이드 해준다.
보통은 최신 node 버전을 설치할 경우 여타의 팩키지들이 최신 버전을 지원하지 못해 나타나는 오류일 가능성이 높다.
nodejs 업데이트는 사용 OS에 따라 설치 방법이 다르다.
일단 터미널을 실행 후, 강제로 npm 캐시를 삭제한다.
npm cache clean -f
MacOS의 경우 npm의 “n“이라고 하는 모듈로 업데이트 관리할 수 있다. (Linux와 MacOS로만 가능)
이 n 패키지 모듈을 전역으로 설치해준다. (→ window OS에서의 nodejs 버전관리)
npm install -g n
n모듈 명령어로 필요한 버전의 Nodejs를 설치해준다.
n stable // 안정적인 버전 설치
n latest // 최신 버전 설치
n lts // lts 버전 설치
n x.x.x // 원하는 버전 설치
※ 설치 후 아래와 같이 설치한 node 버전이 제대로 적용이 되지 않아
설치 전과 동일하게 syntaxerror가 뜨거나 보이지 않는 경우도 있다.
혹 업그레이드/다운그레이드 시에도 변화가 없다면 nodejs의 버전을 제대로 확인해본다.
위에서 stable 버전을 설치 시 터미널에 뜨는 코드인데,
업그레이드 한 버전이 설치된 경로와 이전 node의 경로가 상이하게 나타난다.
mkdir의 경로와 active 경로가 상이하다면, 링크 변경을 강제 인식 시켜줘야 한다.
ln -sf {installed 경로} {active 경로}
위와 같이 변경 설정 후 제대로 node 버전을 확인해보면 업그레이드한 node의 버전이 제대로 활성화 되었음이 확인된다.
tui-grid 가계부 스터디 중 npm run dev를 실행 중 아래와 같은 에러가 뜨면서 로컬호스트로 페이지를 불러 올 수가 없었다.
Error: Error:0308010C:digital Envelope Routines::Unsupported
at new Hash (node:internal/crypto/hash:71:19)
at Object.createHash (node:crypto:133:10)
// nodejs의 버전이 높은 관계로 nodejs의 버전을 17 이하로 설치해 테스트해야만 가능했다.
Nodejs 버전 downgrade 역시 위와 동일하게 진행할 수 있는데,
Linux나 MacOS에서만 n모듈로 버전관리가 가능하다.
WindowsOS nodeJS 버전관리
Windows OS에서는 nvm을 설치하여 버전 관리가 가능한데,
nvm을 설치 한 후, windows 시작 -> 검색 -> command prompt를 “관리자 권한으로 실행“한다.
실행된 node.js 터미널에 아래와 같이 downgrade를 원하는 버전을 설치 후,
버전을 확인을 해보면, MacOS에서와 같이 경로 수정 과정을 거쳐줘야만, 재설치한 nodejs 버전으로 사용 가능하다.
nvm install {version} // 원하는 버전의 nodejs 설치
nvm use {version} // nodejs 설치 경로 수정
nvm ls // 사용 중인 nodejs 버전 확인 가능