Web/React 2021. 4. 2. 22:44

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

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

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

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

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

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

    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"   
          } 
      ...

'Web > React' 카테고리의 다른 글

리액트 gh-pages 적용  (0) 2021.08.18
리액트 IE11 크로스 브라우징 설정  (0) 2021.04.02