자바스크립트를 활성화 해주세요

h011 Hugo Server 명령의 사용예

 ·  ☕ 3 min read

    –port

    포트는 기본적으로 1313 포트를 사용합니다만, 80 포트를 사용하려면 --port 옵션을 사용합니다. -p로 단축 옵션을 사용할 수도 있습니다.

    –bind

    goorm ide에서, 혹은 클라우드에서 외부에 노출하려면 바인딩을 0.0.0.0으로 정해주어야 할 때도 있습니다.

    –baseURL

    root가 되는 호스트이름과 path를 정해줍니다. 단축은 -b 입니다

    –contentDir

    content 디렉토리만 지정할 수 있습니다. 단축은 -c 입니다.

    –source

    ugo 명령어를 실행할 때 -s(-source) 옵션을 사용하는 것으로, 소스 디렉토리의 패스를 지정해 기동할 수 있습니다.

    예: ~/mysite 이하의 소스코드를 사용하여 Hugo 서버를 기동한다

    hugo server -s ~/mysite
    

    예: ~/mysite 이하 기사를 신규 작성하기

    hugo new sample.md -s ~/mysite
    

    위의 예에서는 -s~/mysite라고 하는 소스 디렉토리의 지정을 끝에 가져왔는데 hugo의 직후에 지정해도 동작하는 것 같습니다. 이것을 이용하고, 아래와 같은 커맨드 에일리어스를 작성해 두면, 어느 디렉토리로부터도 곧바로 기사 작성을 시작할 수 있어 편리합니다.

    ~/.bash_profile
    alias hugo-mysite=hugo -s ~/mysite
    

    예를 들어 아래와 같이 사용할 수 있습니다.

    hugo-mysite new sample.md #기사작성
    hugo-mysite server #Hugo 서버 부팅
    hugo-mysite #업로드용 콘텐츠 생성 (~/mysite/public/)
    

    Hugo 서버를 하나의 명령 프롬프트로 실행하기

    복수의 사이트를 Hugo로 작성하고 있는 케이스에서는, 하나의 커맨드 프롬프트에서 동시에 서버 기동할 수 있으면 편리합니다.
    여기에서는 아래와 같이 홈 디렉토리 이하에 복수의 Hugo 프로젝트가 존재한다고 합시다.

    C:/website/site1
    C:/website/site2
    C:/website/site3
    

    각 Hugo 프로젝트에 대해 Hugo 서버를 기동하려면 예를 들어 다음과 같이 실행합니다.

    포트 번호를 지정하여 Hugo 서버를 여러 개 실행한다

    C:\> hugo server-p 50001-s C:/website/site1
    C:\> hugo server-p 50002-s C:/website/site2
    C:\> hugo server-p 50003-s C:/website/site3
    
    참고.
    커런트 디렉토리에 신경 쓰지 말고 hugo 명령어를 실행하다
    포트 번호를 지정하고 Hugo 서버를 실행하다
    단, 위와 같이 하면 하나의 서버 프로세스가 하나의 명령 프롬프트를 점유하기 때문에 여러 개의 Hugo 서버를 기동하고 있을 때 여러 개의 명령 프롬프트를 연 상태로 두어야 합니다.
    
    윈도우일 경우
    Windows의 start 명령어를 사용하면 백그라운드에서 hugo 명령어를 실행할 수 있으므로 추가로 명령 프롬프트를 열지 않고 여러 개의 Hugo 서버를 기동할 수 있습니다. 예를 들어, 아래의 배치 파일은, 3개의 Hugo 서버를 배경으로 기동합니다.
    
    start-servers.bat
    

    @echooff
    start bhugo server-p50001-s C:/website/site1
    start bhugo server-p 50002-s C:/website/site 2
    start bhugo server-p50003-s C:/website/site3
    title Hugo Servers

    마지막 행인 title Hugo Servers에서는 명령 프롬프트의 창 제목을 Hugo Servers로 변경하고 있습니다. 창 제목을 변경해 두면 태스크바만 봐도 무엇을 위한 창인지 판별하기 쉬워지기 때문에 추천합니다.
    백그라운드로 동작하고 있는 Hugo 서버를 정리하여 종료하려면 예를 들어 taskkill 명령을 사용하여 hugo.exe에 의한 프로세스를 정리하여 종료합니다.
    
    stop-servers.bat
    

    @echooff
    taskkkill /f /im hugo.exe

    Windows 의 start 커맨드나, taskkill 커맨드의 자세한 것은, Windows DevNote를 참조해 주세요.
    
    Linux의 경우
    Linux나 macOS의 경우는 다음과 같이 말미에 & 를 붙여 hugo 명령어를 실행하면 간단하게 여러 서버를 배경으로 시작할 수 있습니다.
    
    start-servers.sh
    

    hugo server-p 50001-s~/website/site 1 &
    hugo server-p 50002-s~/website/site 2 &
    hugo server-p 50003-s~/website/site 3 &

    Hugo 서버의 프로세스를 정리하여 종료하고자 할 때는 killall 명령어로 간단하게 종료할 수 있습니다.
    
    stop-servers.sh
    

    kill all hugo

    아래와 같이, 함수나 에이리어스로서 준비해 두는 것이 민첩할지도 모릅니다.
    
    ~/.bash_profile
    ```bash
    function hugo-start{
        hugo server-p 50001-s~/website/site 1 &
        hugo server-p 50002-s~/website/site 2 &
        hugo server-p 50003-s~/website/site 3 &
    }
    function hugo-stop {
        kill all hugo
    }
    

    Hugo 서버에서 기사 변경 내용이 반영되지 않는 경우

    Hugo 서버를 시작해 기사 갱신을 하고 있으면, Web 브라우저를 리로드 해도 변경 내용이 반영되지 않을 수 있습니다 (특히 layouts나 partials 등, 공유해 사용하는 부분 등).

    페이지 빌드에 성공했는데 변경내용이 반영되지 않으면 Hugo 서버의 캐시를 의심해 볼 수도 있습니다.
    hugoserver 명령어를 실행할 때, –ignore Cache 옵션을 붙이면 캐시를 사용하지 않고 렌더링됩니다.

    $hugo server --ignoreCache
    

    테마 지정해서 실행하기

    -t 테마이름 으로 실행합니다.

    레퍼런스

    공유하기

    tkim
    글쓴이
    tkim
    Software Engineer