Karena perpustakaan baru yang muncul melakukan fungsionalabilitas yang sama, perpustakaan ini ditandai sebagai sudah usang dan pertimbangkan untuk menggunakan perpustakaan sitemap berikutnya.
Kami mencari pengelola karena saya tidak punya cukup waktu untuk mempertahankan paket.
Harap pertimbangkan untuk memberikan donasi untuk pemeliharaan proyek.
Menyumbangkan
sitemap.xml mapper sederhana untuk proyek selanjutnya.js.
Untuk menginstal paket, jalankan ini di terminal Anda jika Anda menggunakan benang:
yarn add nextjs-sitemap-generator
Dan ini jika Anda menggunakan NPM:
npm i --save-dev nextjs-sitemap-generator
NextJS memulai server sendiri untuk melayani semua file yang dibuat. Tetapi ada opsi lain yang disebut server khusus yang menggunakan file untuk memulai server berikutnya.
Jika Anda ingin menggunakan paket ini, Anda harus membuat file Sever. Anda dapat menemukan cara melakukannya di sini NextJs Custom Server
Modul ini telah dibuat untuk digunakan di sisi server kustom NODE NEXTJS.
Ini dimaksudkan untuk digunakan di index.js/server.js sehingga ketika server diinisialisasi hanya akan berjalan sekali.
Jika Anda menempatkannya di salah satu penangan permintaan dari kinerja server node mungkin terpengaruh.
Bagi orang -orang yang menggunakan Vercel:
Server khusus tidak dapat digunakan di Vercel, platform Next.js dibuat untuk.
Misalnya:
Jika Anda memiliki contoh file server ini
// 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' )
} )
} ) Jika Anda mengekspor proyek berikutnya sebagai aplikasi HTML statis, buat file skrip generator-sitemap berikutnya di direktori dasar.
Opsi pagesDirectory harus menunjuk ke folder output file statis.
Setelah menghasilkan file output, jalankan node your_nextjs_sitemap_generator.js untuk menghasilkan sitemap.
Jika halaman Anda secara statis dilayani maka Anda harus mengatur opsi allowFileExtensions sebagai true sehingga halaman berisi ekstensi, sebagian besar kasus adalah .html .
getStaticPaths Jika Anda menggunakan next@^9.4.0 , Anda mungkin telah mengkonfigurasi situs Anda dengan GetStaticPaths untuk menggantikan halaman pada rute dinamis. Untuk menambahkannya ke sitemap Anda, Anda perlu memuat file build_id ke dalam konfigurasi Anda untuk mencapai direktori build yang dihasilkan dengan halaman statika di dalamnya, sementara tidak termasuk semua yang bukan halaman statis:
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!` ) ;
Alternatif : Anda dapat menambahkan domain alternatif yang sesuai dengan bahasa yang tersedia. (OPSIONAL)
BaseUrl : URL yang akan digunakan di awal setiap halaman.
Abaikan INDEXFILE : Apakah file indeks harus di URL atau hanya di akhir direktori dengan slash (opsional)
AbaikanPaths : File atau direktori untuk tidak memetakan (seperti rute admin). (Opsional)
Extrapaths : Array dari jalur ekstra untuk dimasukkan dalam sitemap (bahkan jika tidak ada di halamandirektori) (opsional)
diabaikan Extensions : Abaikan file berdasarkan ekstensi. (Opsional)
PAGESDIRECTORY : Direktori di mana halaman NextJS tinggal. Anda dapat menggunakan direktori lain saat mereka adalah halaman berikutnya. Itu harus menjadi jalur absolut .
TargetDirectory : Direktori tempat sitemap.xml akan ditulis.
SitemapFileName : Nama file untuk sitemap. Default ke sitemap.xml . (OPSIONAL)
PageSconfig : Konfigurasi objek prioritas dan changefreq per rute. Menerima Pola Regex (Opsional) Kunci jalur harus menjadi huruf kecil
Sitemapstylesheet : Array objek gaya yang akan diterapkan pada sitemap. (Opsional)
NextConfigPath (digunakan untuk rute dinamis): Panggilan exportPathMap Jika diekspor dari file JS nextConfigPath .
Lihat ini untuk memahami cara melakukannya (https://nextjs.org/docs/api-reference/next.config.js/exportpathmap) (opsional)
AllowFileExtensions (digunakan untuk aplikasi statis): Memastikan ekstensi file ditampilkan dengan jalur di sitemap. Jika Anda menggunakan NextConfigPath dengan ExportTrailingSlash di konfigurasi berikutnya, AllowFileExtensions akan diabaikan. (OPSIONAL)
Untuk saat ini orang -orang yang diabaikan cocok dengan cointaning apa pun yang Anda masukkan, abaikan jika ada file atau direktori. Dalam versi berikutnya ini akan diperbaiki.