헤드리스 CMS+SSG를 도입할 때 노드 서버 구축

목적:



담당 기사 사이트 개수로 SSG/헤드리스 CMS 도입

문제:



・Vercel의 이용을 생각했습니다만, 도메인 변경이 필요.
・SSG/헤드리스 CMS를 도입하고 싶지만, 도메인 변경하고 싶지 않다고 하는 디렉터의 요망.

검토



· 일단 기존 서버에 Node 서버를 구축하고 여러 가지 시도

nodenv란?



· 노드 버전을 관리하는 명령
・플러그인(nodenv-build)을 넣는 것으로, node의 인스톨이 가능

nodenv 다운로드



GitHub에서 nodenv 소스를 clone
git clone https://github.com/nodenv/nodenv.git ~/.nodenv

nodenv 빌드



nodenv를 빌드하여 실행 가능한 상태로 만듭니다.
cd ~/.nodenv && src/configure && make -C src

path를 통과


echo 'export PATH="$HOME/.nodenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(nodenv init -)"' >> ~/.bash_profile

path를 통해 명령을 두드리기

쉘 재시작


exec $SHELL -l

로그인 쉘을 다시 시작하여 새 구성 파일을 읽을 수 있습니다.

nodenv 버전 확인


nodenv --version

플러그인 설치



플러그인용 디렉토리 작성


mkdir -p "$(nodenv root)"/plugins

플러그인 설치(clone)


git clone https://github.com/nodenv/node-build.git "$(nodenv root)"/plugins/node-build

nodenv 업데이트용 플러그인 설치(clone)


git clone https://github.com/nodenv/nodenv-update.git "$(nodenv root)"/plugins/nodenv-update

nodenv update와 명령을 두드려 nodenv와 그 플러그인을 자동으로 업데이트 가능

노드 설치



설치 가능한 노드 버전 확인


nodenv install --list

노드 설치 (14.15.1은 현재 LTS 버전)


nodenv install 14.15.1

rehash 실행


nodenv rehash

· nodenv에서 node와 글로벌 npm 패키지를 볼 수 있도록
· 새로운 노드 버전을 넣거나 npm install -g 등을 실행할 때 실행해야합니다.

노드 버전 확인


nodenv versions
* 14.15.1 (set by /home/ec2-user/***_deploy/blog/.node-version)

노드 버전 지정



프로젝트에서 사용할 노드의 버전 지정
프로젝트 디렉토리에서만 사용할 노드 버전 지정
cd /home/ec2-user/xxx_deploy/blog
nodenv local 14.15.1
프로젝트의 디렉토리 (/home/ec2-user/xxx_deploy/xxx_blog)에 .node-version이라는 이름의 보이지 않는 파일이 생성되며 그 안에 해당 디렉토리에서 사용하는 node의 버전이 설명됩니다.

덧붙여서 글로벌로 사용할 경우의 node 버전 지정
nodenv global 14.15.1
글로벌과 로컬 모두 지정했을 경우, 로컬로 지정하는 것이 우선다.

build


npm ci(少し時間かかる)
npm run build

Compiled successfully, Export successful 메세지로 build가 완료해, 프로젝트의 디렉토리에 out(디폴트)라고 하는 폴더가 생겨 여러가지 토출된다.
out 폴더내의 기사의 html 파일을 열면 문제 없게 기사가 표시되었으므로 build가 정상적으로 행해졌다고 판단.



기타 node 명령



node 제거


nodenv uninstall 14.15.1

nodenv 업데이트


nodenv update

nodenv 제거



~/.nodenv의 디렉토리를 지우는 것만
rm -rf $(nodenv root)

서버에서 직접 커멘드 실행으로 build가 정상적으로 행해졌으므로 다음은 GitHubActtion에서 push시에 자동으로 git로부터 최신 소스를 pull 후에 node 서버로 build 하는 구조를 아래와 같이 구현.
htps : // 코 m / 케이 ry / ms / 5568232516b8 예 323d4b

좋은 웹페이지 즐겨찾기