UNPKG

ngx-sitemap

Version:

CLI to create a sitemap for Angular Universal Applications with prerendered pages

87 lines (73 loc) 2.55 kB
# Angular Universal Sitemap Generator This package contains a CLI which is able to create a sitemap.xml file at build time. The CLI only works in combination with [Angular SSR](https://angular.io/guide/universal) and [Prerendering](https://angular.io/guide/prerendering). The routes from the prerendered pages are being used to generate the sitemap. This package can be used in CI/CD as it does not crawl a running website. ## Installation ``` npm install ngx-sitemap --save-dev ``` ## Usage In order to work you must first prerender all routes to be included in the ``sitemap.xml``. Then, use it from the command line as follows: ``` ngx-sitemap <srcDirectory> <baseUrl> ``` Example: ``` ngx-sitemap ./dist/prod/browser htts://www.example.com ``` This will generate a ``sitemap.xml`` in the srcDirectory given. ## How it works [Prerendering](https://angular.io/guide/prerendering) will generate a static website with prerendered pages in the dist folder in a format like this: ``` dist └── prod ├── browser │ ├── route1 │ │ └── index.html │ ├── route2 │ │ ├── route3 │ │ │ └── index.html │ │ ├── route4 │ │ │ └── index.html │ │ └── index.html │ ├── index.html │ ├── main.js │ ├── runtime.js │ └── ... └── server └── ... ``` The Command expects the ``srcDirectory`` which in this case would be ``./dist/prod/browser``. It then lists all routes which end with ``index.html`` resulting in the following: ``` [ '/' 'route1', 'route2', 'route2/route3', 'route2/route4', ] ``` Once all routes are found they get written into the ``sitemap.xml`` as follows: ``` <?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="https://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>https://www.example.com</loc> </url> <url> <loc>https://www.example.com/route1</loc> </url> <url> <loc>https://www.example.com/route2</loc> </url> <url> <loc>https://www.example.com/route2/route3</loc> </url> <url> <loc>https://www.example.com/route2/route4</loc> </url> </urlset> ``` Once deployed, the sitemap is available under ```https://www.example.com/sitemap.xml```. ## License [MIT](https://spdx.org/licenses/MIT.html)