2023. 11. 28. 00:17ㆍNode.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 |
---|