Node.js - 프로젝트 초기 환경 설정 팁

2023. 11. 28. 00:17Node.js

프로젝트를 생성하거나 새로운 맥을 사용하게 된다면 매우 귀찮은 경우가 많다. 찾았던 문서나 블로그들도 사라지거나 변경되며 정리하는 내용이다.

 

1. NVM(Node Version Manager)사용

 

일반적으로 Node 버전을 업데이트와 업그레이드하기 굉장히 귀찮기도 하고 한 번 잘못 꼬이면 해결하기 힘들기 때문이다. 많은 언어들에서도 version manager가 있다. java에서는 jabba, golang에서는 gvm등이 있다.

운영체제마다 설치 방법이 다르다. 아래의 설명들은 Intel Mac에서 homebrew가 설치가 되어있으며 zsh를 사용한다는 전제로 하는 설명이다.(운영체제와 쉘 종류에 따라 설치 방법이 다르니 주의 바랍니다.)

 

먼저, brew로 nvm을 install한다.

brew install nvm

 

환경변수 설정 및 script를 실행한다.

export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh

 

만약 오류가 생긴다면 링크를 참조하자 (링크)

 

아래의 명령어를 사용하여 사용할 수 있다.

nvm -v # nvm의 버전을 확인합니다.

nvm list available # 사용가능한 Node 버전들이 조회된다.

nvm install node # node 최신 버전으로 설치됩니다.

nvm install {원하는 버전(e.g. 20.10)} # 원하는 버전의 node가 설치됩니다.

nvm use node # 사용하고자 하는 node 버전으로 변경합니다.

nvm list # 사용가능한 node 버전들을 조회합니다. (nvm ls도 동일)

 

 

2. husky로 git hook을 이용한 commit convention 적용

 

협업을 위해서는 commit convention의 존재가 필요하다. 이를 강제하기 위해서는 git hook을 이용하면 편리하게 적용할 수 있다. 특히 기존 명령어 git commit을 이용하면 굉장히 편하다.

 

node가 설치되었고 git도 걸치된 상태를 전제로 하는 설명이다.

일단 기본적으로 npm을 기반으로 설명할 예정이다. yarn을 사용한다면 약간 다를 수 있다.

 

버전에 따라 설정이 달라져 다시 작성한다. 현재는 install과 add 모두 deprecated되었다. version 9이전과 이후 사용법이 달라졌기에 버전 별로 사용밥법이 다르다. https://github.com/typicode/husky/releases/tag/v9.0.1 

 

Release v9.0.1 · typicode/husky

Kicking off the year with an exciting update! Note: install using husky@latest to get the bug fixes that were released after. Introducing husky init v8 npm pkg set scripts.prepare="husky instal...

github.com

# npm 초기화
npm init

# husky 및 commitizen 설치
npm i husky commitizen --save-dev

# .husky 디렉토리 설정
## version 9부터
npx husky init
## version 9이전까지. 최신 버전에서 install command는 deprecated 되었다.
npx husky install

# git commit 명령어 만으로 convention 적용
## version 9부터
echo "exec < /dev/tty && node_modules/.bin/cz --hook || true" > ./.husky/pre-commit 
## version 9이전까지. 최신 버전에서 add command는 deprecated 되었다.
npx husky add .husky/prepare-commit-msg 'exec < /dev/tty && node_modules/.bin/cz --hook || true'

 

위의 명령어를 작성한 뒤 package.json 파일에 아래와 같이 추가해 준다.

  "config": {
    "commitizen": {
      "path": "./node_modules/cz-conventional-changelog"
    }
  }

 

그러면 git commit 명령어로 commit convention을 적용시킬 수 있다.

 

만약 commit 전에 prettier 와 ESLint 설정을 적용할 수 있다. 이는 링크를 참조하자. (링크)

 

※ husky의 버전이 9이상부터 'exec < /dev/tty && node_modules/.bin/cz --hook || true' 명령어를 추가하더라도 convention 관련 cli가 나오지만 커밋 메시지가 빈 메시지로 변경된다. 이 이슈에 대하여 방법을 찾아볼 예정이지만 현재는 버전 8이하의 버전으로 진행하는 것이 나아보인다.

 


아직 다 정리한 것은 아니지만 기본적으로 필수적인 것만 정리한 것이다. 시간이 된다면 틈틈이 정리 예정이다.

'Node.js' 카테고리의 다른 글

Node.js - @ symbol  (0) 2022.08.14