리액트 프로젝트 사이트맵 생성

2021. 4. 2. 22:44·SW개발/React
반응형

리액트 프로젝트 사이트맵 생성

  • 구글 검색을 최적화하려면 사이트맵을 제출해야 한다.

  • yarn과 npm을 혼용했는데 웬만하면 하나로 통일해서 사용하는게 좋은 듯하다.

  • react-router-sitemap 패키지를 사용한다.

      npm install react-router-sitemap
  • 사이트에서 Route를 사용한 파일을 복사하여 이름을 변경한다.

    • 나는 1개의 파일에서만 분리했는데, 서브라우팅의 경우 어떻게 하는지 궁금하다.

    • 참고 : https://ujeon.medium.com/react-%EB%A6%AC%EC%95%A1%ED%8A%B8-%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EC%82%AC%EC%9D%B4%ED%8A%B8%EB%A7%B5-%EB%A7%8C%EB%93%A4%EA%B8%B0-1116ff8b6c2a

  • 적절한 경로에 사이트맵 제네레이터 파일을 생성한다.

    sitemapGenerator.js

      require("babel-register")({
          presets: ["es2015", "react"]
      });
      require.extensions['.css'] = () => {};
    
      const router = require("./sitemapRoutes").default;
      const Sitemap = require("react-router-sitemap").default;
    
      function generateSitemap() {
              return (
                  new Sitemap(router)
                          .build("도메인 이름")
                          .save("./public/sitemap.xml")
              );
      }
    
      generateSitemap();
    • 따로 설치한 패키지의 css 파일에서 SyntaxError: Invalid left-hand side in assignment 에러가 발생해서, require.extensions['.css'] = () => {}; 항목을 넣어주었다.
  • 위의 바벨을 적용하기 위해 다음 패키지를 설치한다.

      npm install --save-dev babel-cli 
      npm install --save-dev babel-preset-es2015 
      npm install --save-dev babel-preset-react 
      npm install --save-dev babel-register
  • package.json 파일의 scripts 부분에 다음을 추가하여 사용한다.

      ... 
          "scripts": {     
              ...
              "sitemap": "babel-node 경로/sitemaGenerator.js"   
          } 
      ...
  • yarn sitemap을 실행하면 sitemap.xml 파일이 생긴다.

  • 배포할 때 자동으로 생성되도록 하려면 package.json 파일의 scripts 부분에 다음을 추가한다.

      ... 
          "scripts": {     
              ...    
              "predeploy": "yarn sitemap"   
          } 
      ...
반응형
저작자표시 (새창열림)

'SW개발 > React' 카테고리의 다른 글

리액트 gh-pages 적용  (0) 2021.08.18
리액트 IE11 크로스 브라우징 설정  (0) 2021.04.02
'SW개발/React' 카테고리의 다른 글
  • 리액트 gh-pages 적용
  • 리액트 IE11 크로스 브라우징 설정
Caniro
Caniro
MinimalismCaniro 님의 블로그입니다.
  • Caniro
    Minimalism
    Caniro
  • 전체
    오늘
    어제
    • 전체보기 (319)
      • SW개발 (268)
        • Java Spring (6)
        • C++ (186)
        • Python (21)
        • Linux (16)
        • 알고리즘 (13)
        • Git (4)
        • Embedded (1)
        • Raspberrypi (9)
        • React (3)
        • Web (2)
        • Windows Device Driver (6)
      • IT(개발아님) (46)
        • Windows (26)
        • MacOS (7)
        • Utility (11)
      • 챗봇 짬통 (0)
      • 일상 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    MacOS
    백기선
    logi options
    Windows 11
    Workspace
    스프링
    로지텍 마우스 제스처
    unix
    java
    mspaint
    spring
    스프링 프레임워크 핵심 기술
    KakaoTalk
    윈도우 명령어
    윈도우
    citrix workspace
    vscode
    SFC
    알림
    dism
    Solaris 10
    SunOS 5.1
    그림판
    EXCLUDE
    시스템 복구
    맥북 카카오톡 알림 안뜸
    제외
    windows
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Caniro
리액트 프로젝트 사이트맵 생성

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.