Skip to content

jbaubree/vite-ssg-sitemap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
May 22, 2024
May 22, 2024
Nov 25, 2024
Apr 30, 2022
Mar 2, 2022
Sep 21, 2022
Mar 2, 2022
Aug 2, 2024
May 22, 2024
Jan 9, 2025
Jan 9, 2025
Mar 2, 2022
May 5, 2022
Sep 21, 2022

Repository files navigation

vite-ssg-sitemap

npm version monthly downloads types license CI

Sitemap generator working with vite-ssg using sitemap-ts

Getting Started

Vue

Install:

npm install -D vite-ssg
npm install -D vite-ssg-sitemap

Vite config

Add to your vite.config.js:

import generateSitemap from 'vite-ssg-sitemap'

export default {
  plugins: [
    Vue(),
  ],
  ssgOptions: {
    onFinished() { generateSitemap() },
  },
}

Now, run npm build and this will generate sitemap.xml and robots.txt files on your dist folder.

hostname

  • Type: string
  • Default: 'http://localhost/'

Base URI.

dynamicRoutes

  • Type: string[]
  • Default: []

Array of strings with manual dynamic routes.

export default {
  plugins: [
    Vue(),
  ],
  ssgOptions: {
    onFinished() {
      const users = await api.get('/users')
      const dynamicRoutes = users.map(user => `/users/${user.name}`)
      generateSitemap({ dynamicRoutes })
    },
  },
}

exclude

  • Type: string[]
  • Default: []

Array of strings with excluded routes.

export default {
  plugins: [
    Vue(),
  ],
  ssgOptions: {
    onFinished() {
      generateSitemap({
        exclude: ['/admin', '/private']
      })
    },
  },
}

You can find a working example in example folder.

externalSitemaps

  • Type: string[]
  • Default: []

Array of strings with other sitemaps paths or urls.

generateSitemap({
  externalSitemaps: ['sitemap_1', 'sitemap_2', 'subpath/sitemap_3', 'https://site.com/sitemap.xml']
})

outDir

  • Type: string
  • Default: 'dist'

Output directory.

extensions

  • Type: string | string[]
  • Default: 'html'

File extensions that need to be generated. Example: ['html', 'md']

changefreq

  • Type: string | RoutesOptionMap<string>
  • Default: 'daily'

Change frequency option for sitemap.

priority

  • Type: number | RoutesOptionMap<number>
  • Default: 1

Priority option for sitemap.

lastmod

  • Type: Date | RoutesOptionMap<Date>
  • Default: new Date()

Last modification option for sitemap.

RoutesOptionMap<Type>

  • Type: { [route: string]: Type }

Used for changing changefreq, priority, or lastmod on a by-route level. The (optional) route '*' is used as default.

readable

  • Type: boolean
  • Default: false

Converts XML into a human readable format

i18n

  • Type: { defaultLanguage?: string, languages: string[], strategy?: 'suffix' | 'prefix' }
  • Default: undefined, strategy: 'suffix'

Add i18n support defining alternate links. defaultLanguage will use this language with / and languages with /language. strategy specifies if the language code is a suffix to the path or a prefix. 'suffix' is default. Example: http://localhost/mypage/en or http://localhost/en/mypage

generateRobotsTxt

  • Type: boolean
  • Default: true

Enables robots.txt file generation

robots

  • Type: RobotOption[]
  • Default: [{ userAgent: '*', allow: '/' }]

RobotOption:

  • userAgent: string
  • allow?: string | string[]
  • disallow?: string | string[]
  • crawlDelay?: number
  • cleanParam?: string

License

MIT License © 2022 jbaubree