Из-за новых новых библиотек, выполняющих ту же функциональность, эта библиотека помечена как устаревшая, и рассматривает возможность использования библиотеки следующей системы.
Мы ищем сопровождающих, потому что у меня не хватает времени, чтобы поддерживать пакет.
Пожалуйста, рассмотрите возможность сделать пожертвование для обслуживания проекта.
Пожертвовать
Simple sitemap.xml Mapper для проектов healh.js.
Чтобы установить пакет, выполнить это в свой терминал, если вы используете пряжу:
yarn add nextjs-sitemap-generator
И это, если вы используете NPM:
npm i --save-dev nextjs-sitemap-generator
NextJS начинает свой собственный сервер для обслуживания всех созданных файлов. Но есть еще один вариант, который называется пользовательским сервером, который использует файл для запуска следующего сервера.
Если вы хотите использовать этот пакет, вы должны создать файл SEAV. Вы можете найти, как это сделать здесь.
Этот модуль был создан для использования на стороне Nextjs NextJs Next Jode.
Он предназначен для использования в index.js/server.js, так что когда сервер инициализирован, он будет работать только один раз.
Если вы поместите его в любой из обработчиков запроса на производительность сервера узлов, может быть затронут.
Для тех людей, которые развертываются в Vercel:
Пользовательский сервер не может быть развернут на Vercel, для платформы Next.js была сделана.
Например:
Если у вас есть этот пример файл сервера
// server.js
const sitemap = require ( 'nextjs-sitemap-generator' ) ; // Import the package
const { createServer } = require ( 'http' )
const { parse } = require ( 'url' )
const next = require ( 'next' )
const dev = process . env . NODE_ENV !== 'production'
const app = next ( { dev } )
const handle = app . getRequestHandler ( )
/*
Here you is you have to use the sitemap function.
Using it here you are allowing to generate the sitemap file
only once, just when the server starts.
*/
sitemap ( {
alternateUrls : {
en : 'https://example.en' ,
es : 'https://example.es' ,
ja : 'https://example.jp' ,
fr : 'https://example.fr' ,
} ,
baseUrl : 'https://example.com' ,
ignoredPaths : [ 'admin' ] ,
extraPaths : [ '/extraPath' ] ,
pagesDirectory : __dirname + "\pages" ,
targetDirectory : 'static/' ,
sitemapFilename : 'sitemap.xml' ,
nextConfigPath : __dirname + "\next.config.js"
} ) ;
app . prepare ( ) . then ( ( ) => {
createServer ( ( req , res ) => {
const parsedUrl = parse ( req . url , true )
const { pathname , query } = parsedUrl
if ( pathname === '/a' ) {
app . render ( req , res , '/a' , query )
}
else if ( pathname === '/b' ) {
app . render ( req , res , '/b' , query )
} else {
handle ( req , res , parsedUrl )
} } ) . listen ( 3000 , ( err ) => {
if ( err ) throw err
console . log ( '> Ready on http://localhost:3000' )
} )
} ) Если вы экспортируете следующий проект в качестве статического приложения HTML, создайте файл скрипта GENEMAP GENTEMAP в базовом каталоге.
Опция pagesDirectory должна указывать на выходную папку статических файлов.
После генерации выходных файлов запустите node your_nextjs_sitemap_generator.js , чтобы генерировать карту сайта.
Если ваши страницы статически обслуживаются, вам необходимо будет установить опцию allowFileExtensions как true , чтобы страницы содержали расширение, в большинстве случаев .html .
getStaticPaths Если вы используете next@^9.4.0 , вы можете настроить свой сайт с помощью GetStaticPaths для предварительного обмена страницами на динамических маршрутах. Чтобы добавить их в вашу карту сайта, вам необходимо загрузить файл build_id в свою конфигурацию, чтобы добраться до сгенерированного каталога сборки со статитическими страницами внутри, за исключением всего, что не статическое страницы:
const sitemap = require ( "nextjs-sitemap-generator" ) ;
const fs = require ( "fs" ) ;
const BUILD_ID = fs . readFileSync ( ".next/BUILD_ID" ) . toString ( ) ;
sitemap ( {
baseUrl : "https://example.com" ,
// If you are using Vercel platform to deploy change the route to /.next/serverless/pages
pagesDirectory : __dirname + "/.next/server/static/" + BUILD_ID + "/pages" ,
targetDirectory : "public/" ,
ignoredExtensions : [ "js" , "map" ] ,
ignoredPaths : [ "assets" ] , // Exclude everything that isn't static page
} ) ; // your_nextjs_sitemap_generator.js
const sitemap = require ( "nextjs-sitemap-generator" ) ;
sitemap ( {
alternateUrls : {
en : "https://example.en" ,
es : "https://example.es" ,
ja : "https://example.jp" ,
fr : "https://example.fr" ,
} ,
baseUrl : "https://example.com" ,
ignoredPaths : [ "admin" ] ,
extraPaths : [ "/extraPath" ] ,
pagesDirectory : __dirname + "\pages" ,
targetDirectory : "static/" ,
sitemapFilename : "sitemap.xml" ,
nextConfigPath : __dirname + "\next.config.js" ,
ignoredExtensions : [ "png" , "jpg" ] ,
pagesConfig : {
"/login" : {
priority : "0.5" ,
changefreq : "daily" ,
} ,
} ,
sitemapStylesheet : [
{
type : "text/css" ,
styleFile : "/test/styles.css" ,
} ,
{
type : "text/xsl" ,
styleFile : "test/test/styles.xls" ,
} ,
] ,
} ) ;
console . log ( `✅ sitemap.xml generated!` ) ;
AlternateUrls : Вы можете добавить альтернативные домены, соответствующие доступному языку. (НЕОБЯЗАТЕЛЬНЫЙ)
BASEURL : URL, который он будет использоваться в начале каждой страницы.
Игнорировать файл -файл : должен быть индексный файл в URL или просто оканчиваться в каталоге (необязательно)
Игнорированные виды : файл или каталог, чтобы не карту (например, маршруты администратора). (Необязательно)
Экстрапаты : массив дополнительных путей, чтобы включить в карту сайта (даже если нет в PagesDirectory) (необязательно)
Игнорировать : игнорировать файлы по расширению. (Необязательно)
PagesDirectory : каталог, где живут страницы NextJS. Вы можете использовать другой каталог, пока они являются страницами NextJS. Это должен быть абсолютный путь .
TargetDirectory : каталог, где будет написан SiteMap.xml.
SITEMAPFILENAME : имя файла для карты сайта. По умолчанию в sitemap.xml . (НЕОБЯЗАТЕЛЬНЫЙ)
Pagesconfig : конфигурация объекта приоритета и изменения в течение маршрута. Принимает шаблоны режима (необязательно) Клавиши пути должны быть строчными.
SiteMapStylesheet : массив объектов стиля, которые будут применены к SiteMap. (Необязательно)
NextConfigPath (используется для динамических маршрутов): вызовы exportPathMap , если экспортируются из файла nextConfigPath JS.
Смотрите это, чтобы понять, как это сделать (https://nextjs.org/docs/api-reference/next.config.js/exportpathmap) (необязательно)
AllingFileExtensions (используется для статических приложений): гарантирует, что расширение файла отображается с путем в карте сайта. Если вы используете NextConfigPath с exportTrailingSlash в следующей конфигурации, AlliveFileExtensions будет проигнорирована. (НЕОБЯЗАТЕЛЬНЫЙ)
На данный момент игнорированные виды соответствуют тому, что вы ставите, то, что вы ставите, игнорируя, если есть файлы или каталоги. В следующих версиях это будет исправлено.