Nuxt.js + Contentful (HeadlessCMS) でsitemap.xmlを静的ファイル出力

公式が @nuxtjs/sitemap を提供しているのでそれを利用してみる

$ npm i @nuxtjs/sitemap --save

nuxt.config.js

module.exports = {
  modules: [
    '@nuxtjs/sitemap',
    ...
  ],
  sitemap: {
    path: '/sitemap.xml',
    hostname: 'https://example.com',
    generate: true,  // 静的に出力する場合はtrueを設定
    exclude: [ // 出力したくないディレクトリやページ
      '/dir',
       ...
    ],
    async routes () {
      // nuxt.config.js内のgenerate -> routes設定をコピペ
    }
  }
}

以上で子ページ(ブログ記事)の内容もsitemap.xmlに出力される。