# @funken-studio/sitemap-nuxt-3 中文文档

规范地址：https://npmcn.com/package/%40funken-studio/sitemap-nuxt-3/

版本：4\.0\.4
npm 元数据更新时间：2024-09-12T11:28:14.322Z
中文译文更新时间：2026-11-15T19:02:05.284Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40funken-studio/sitemap-nuxt-3
原文对照：https://npmcn.com/package/%40funken-studio/sitemap-nuxt-3/?lang=original
项目主页：https://github.com/funken-studio/sitemap-module-nuxt-3#readme
源码仓库：https://github.com/funken-studio/sitemap-module-nuxt-3

弃用说明：Package no longer supported\. Contact Support at https://www\.npmjs\.com/support for more info\.

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：42.1 kB，24 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=16\.11
- 运行依赖：11 个
- 首次发布：2022-06-28T18:47:59.714Z
- 最新版本发布：2022-11-19T14:47:58.514Z
- 近 30 天下载量：5700（2026-10-16 至 2026-11-14，npm 官方下载统计）
- 已发布版本数：11（近 12 个月 0 个）

## 中文简介

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

## 安装

```sh
npm install @funken-studio/sitemap-nuxt-3
```

也可以使用：`pnpm add @funken-studio/sitemap-nuxt-3`、`yarn add @funken-studio/sitemap-nuxt-3`、`bun add @funken-studio/sitemap-nuxt-3`

## README

[![@nuxtjs/sitemap](https://npmcn.com/package/%40funken-studio/sitemap-nuxt-3/docs/static/preview.png)](https://sitemap.nuxtjs.org/)

# 项目模块

[![npm (scoped with tag)](https://img.shields.io/npm/v/@funken-studio/sitemap-nuxt-3/latest?style=flat-square)](https://www.npmjs.com/package/@funken-studio/sitemap-nuxt-3) [![Downloads](https://img.shields.io/npm/dw/@funken-studio/sitemap-nuxt-3?style=flat-square)](https://www.npmjs.com/package/@funken-studio/sitemap-nuxt-3) [![Build Status](https://img.shields.io/circleci/project/github/nuxt-community/sitemap-module?style=flat-square)](https://app.circleci.com/pipelines/github/nuxt-community/sitemap-module) [![Coverage Status](https://img.shields.io/codecov/c/github/nuxt-community/sitemap-module?style=flat-square)](https://codecov.io/gh/nuxt-community/sitemap-module) [![License](https://img.shields.io/npm/l/@nuxtjs/sitemap?style=flat-square)](http://standardjs.com/)

> 自动生成或服务动态 [站点地图.xml](https://www.sitemaps.org/protocol.html) 为Nuxt项目!

[读取文档](https://sitemap.nuxtjs.org/)

[📖 **发布注释**](https://npmcn.com/package/%40funken-studio/sitemap-nuxt-3/CHANGELOG.md)

## 生成 sitemap.xml

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

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

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

## 使用动态路线

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

`nuxt.config.ts`

```js
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`

```js
/**
 * 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`

```js
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 许可证](https://npmcn.com/package/%40funken-studio/sitemap-nuxt-3/LICENSE)

## 贡献者

-   [尼古拉·潘内克](https://github.com/NicoPennec)
-   [波亚·帕萨](https://github.com/pi0)

## 常见问题

### @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。作者已将其标记为弃用，新项目建议寻找替代方案。

