@funken-studio/sitemap-nuxt-3

中文文档
4.0.4发布于 2022/11/19MITTypeScriptESM + CJS近 30 天下载 5700

为 Nuxt 项目自动生成或服务动态站点map.xml

此软件包已被标记为弃用

Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

中文使用文档
文档目录4 节
  1. 生成 sitemap.xml
  2. 使用动态路线
  3. 许可证
  4. 贡献者

@nuxtjs/sitemap

项目模块

npm (scoped with tag) Downloads Build Status Coverage Status License

自动生成或服务动态 站点地图.xml 为Nuxt项目!

读取文档

📖 发布注释

生成 sitemap.xml

通常网站map.xml通过服务器中间软件/处理器服务,它只生成于 .output/public 运行时 nuxi generate。 。 。 .

如果您想在每个建筑上生成 sitemap.xml, 您可以设置 generateOnBuild 选项到 true 在模块配置中. (如果使用动态路径,此选项可能行不通)

// nuxt.config.js
modules: {
  ...
  ['@funken-studio/sitemap-nuxt-3', { generateOnBuild: true }],
  ...
}

使用动态路线

  • 您无法使用导入 !
  • 关于可用工作,见下文:

nuxt.config.ts

import dynamicRoutes from './helpers/dynamicRoutes'
...
 modules: [
    '@funken-studio/sitemap-nuxt-3',
],
sitemap: {
    hostname: 'https://example.com', 
    cacheTime: 1,
    routes: dynamicRoutes,
    defaults: {
      changefreq: 'daily',
      priority: 1,
      lastmod: new Date().toISOString(),
    },
},
...

/helpers/dynamicRoutes

/**
 * since we can't use imports here we just fetch
 * all our routes from a custom API endpoint where we can use imports
 */
export default async () => {
  return await $fetch('/api/sitemap_routes', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
  })
}

/server/api/sitemap_routes.ts

import { apiPlugin } from '@storyblok/vue'
import { eventHandler } from 'h3'

/**
 * We are using Storyblok as our CMS,
 * in order to have all news and testimonials pages in our sitemap
 * we need to fetch some from Storyblok
 */
export default eventHandler(async (event) => {
  const { req, res } = event
  if (req.method !== 'POST') {
    res.statusCode = 405
    res.end()
    return
  }
  const config = useRuntimeConfig()
  const { storyblokApi } = apiPlugin({ apiOptions: config.public.storyblok })
  console.log('[vue-sitemap] generate dynamic routes')

  const fetchRoutes = async (slug) => {
    const routes = []
    const pageInfo = await storyblokApi.get(`cdn/stories/?starts_with=${slug}`, {
      version: 'published',
      per_page: 1,
      page: 1,
    })

    const totalPages = Math.ceil(pageInfo.headers.total / 25)
    for (let page = 1; page <= totalPages; page++) {
      const pageNews = await storyblokApi.get(`cdn/stories/?starts_with=${slug}`, {
        version: 'published',
        page: page,
      })

      for (const news of pageNews.data.stories) {
        routes.push(`/${slug}/${news.slug}`)
      }

      routes.push(`/${slug}/${page}`)
    }
    return routes
  }

  return [...(await fetchRoutes('news')), ...(await fetchRoutes('testimonials'))]
})

许可证

MIT 许可证

贡献者

版本与发布记录

@funken-studio/sitemap-nuxt-3 共发布 11 个版本,首次发布于 2022/06/29;过去 12 个月发布了 0 个版本。

版本发布日期距今
4.0.4latest2022/11/193 年前
4.0.32022/11/193 年前
4.0.22022/11/193 年前
4.0.12022/11/193 年前
4.0.02022/10/244 年前
3.2.02022/07/064 年前

关于 @funken-studio/sitemap-nuxt-3 的常见问题

@funken-studio/sitemap-nuxt-3 是什么?

为 Nuxt 项目自动生成或服务动态站点map.xml注意:该包已被作者标记为弃用——Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

如何安装 @funken-studio/sitemap-nuxt-3?

在项目目录运行 npm install @funken-studio/sitemap-nuxt-3,或使用 pnpm add / yarn add / bun add。

@funken-studio/sitemap-nuxt-3 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@funken-studio/sitemap-nuxt-3 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@funken-studio/sitemap-nuxt-3 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=16.11。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@funken-studio/sitemap-nuxt-3 可以商用吗?

@funken-studio/sitemap-nuxt-3 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@funken-studio/sitemap-nuxt-3 的下载量有多少?

根据 npm 官方下载统计,@funken-studio/sitemap-nuxt-3 在 2026/10/16 – 2026/11/14 这 30 天内被下载 5,700 次,日均约 190 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@funken-studio/sitemap-nuxt-3 还在维护吗?

最新版本 4.0.4 发布于 2022/11/19(3 年前);至今共发布 11 个版本,其中过去 12 个月发布了 0 个;首次发布于 2022/06/29。作者已将其标记为弃用,新项目建议寻找替代方案。