Skip to content

jbaubree/vite-plugin-sitemap

Repository files navigation

vite-plugin-sitemap

npm version monthly downloads types license CI

Sitemap generator plugin for Vite using sitemap-ts.

This plugin scans your dist folder next build to generate sitemap.xml and robots.txt files.

Getting Started

Vue

Install:

npm install -D vite-plugin-sitemap

Vite config

Add to your vite.config.js:

import Sitemap from 'vite-plugin-sitemap'

export default {
  plugins: [
    Vue(),
    Sitemap({ hostname: 'https://example.com' }),
  ],
}

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

To generate all pages of your app, you can:

Configuration options

hostname

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

Base URI.

dynamicRoutes

  • Type: string[]
  • Default: []

Array of strings with manual dynamic routes.

const names = [
  'John',
  'Bryce',
  'Addison',
  'Dana',
]
const dynamicRoutes = names.map(name => `/names/${name}`)

export default {
  plugins: [
    Vue(),
    Sitemap({ dynamicRoutes }),
  ],
}

You can find a working example in example folder.

exclude

  • Type: string[]
  • Default: []

Array of strings with excluded routes.

export default {
  plugins: [
    Vue(),
    Sitemap({ 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

About

Sitemap generator plugin for Vite

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •