블로그삽질기 1 : Hexo not found error

문제상황 : hexo server 실행을 하려고 했는데 잘 안 됐음.

세부 내용

노트북을 바꾸고 소스를 깃헙으로 올려서 다시 받아오는 과정에서 문제가 생겼다.
이후에 비슷한 문제가 또 생길 수도 있어서 해결 과정을 기록.

에러 해결 과정 intro

  • hexo를 install 하라는 에러 메세지가 떠 있어서 npm install hexo -g 를 시도 했지만 여전히 안 되었다.

  • hexo 공식 사이트에 들어가 보았더니 npm install hexo-cli -g로 설치하라고 해서 시도하였다.

    • 설치는 잘 되었지만 해당 폴더에서 hexo server 했을때 여전히 동일한 메세지가 떴다.
  • 원인을 찾기 위해서 hexo not found로 구글 검색 했더니 hexo github에 해당 이슈에 대한 보고가 되어 있었다. #2076

    • 열어 보았더니 비슷한 증상이 많이 보고되어 있고 node js 버전을 업그레이드 했더니 정상 작동 한다는 보고가 되어 있었음

가설 1 : nodejs의 버전문제

  • hexo홈페이지에서 nvm install stable을 하라고 했는데 잘 안되었다.

    • 윈도우버전이라서 그럴 것으로 추정.
  • nodejs 사이트에서 lts버전을 확인했고 10.15.0이어서 nvm install 10.15.0 명령을 시도하였다.

    • 이후 다시 npm install hexo -g 를 시도했더니 npm not found 에러가 떴다.

    • 다른 lts 버전인 10.14.2를 시도했지만 동일한 증상이 보였다.

    • 로그를 확인해보니 npm install에 실패했다는 로그를 확인했다.

  • npm사이트에서 직접 받으려고 npm 깃헙에 들어갔더니 repo가 이동되었다는 메세지 확인되었다.

  • nvm에 변경된 npm 저장소의 url이 반영되어 있지 않다고 판단되어서,

    • nvm 버전을 최신 버전으로 설치했다. (1.1.7로 올림)
  • 이 후 다시 nvm unistall 10.15.0nvm install 10.15.0을 하니 npm정상적으로 설치되는 것 확인 했다.

  • npm install hexo-cli -g 했더니 hexo는 정상적으로 설치되는 것 확인 되었다.

  • 그러나 hexo server는 여전히 안됨 ㅠㅠ

  • package.json파일이 없는 폴더에서는 정상적으로 hexo 명령이 정상적으로 실행 되는 것 확인.


가설2 : 로컬 폴더에 디펜던시가 정상적으로 설치되어 있지 않아서 global 패키지를 찾기 전에 오류를 내보내는 것으로 추정.

  • npm install 명령을 통해 디펜던시를 설치했다. (의존성 라이브러리)

  • 이후 hexo server를 했더니 정상적으로 작동하였다.


다른 문제 발견 : 그런데 localhost링크에 안 들어가짐. 정확히는, 빈 화면이 뜸.

  • theme 폴더에 overdose 테마가 안 옮겨진 것을 확인하였다 (왜?.. 통째로 들고왔는데..? )

  • overdose github페이지 다시 들어가서 하라는대로 설치를 다시 했다.

  • 작동 됨 !

결론

  1. 디펜던시 설치 확인할 것
  2. 왠만하면 노트북을 바꿀 때에 기존에 썼던 폴더를 그대로 옮기자.
  3. 쓰던 테마와 __config.yml_ 파일 제대로 가져왔는지 잘 확인하자.