From 42250ecb69746237ee2fd2018619c13cde3f4553 Mon Sep 17 00:00:00 2001 From: Aarni Halinen Date: Sun, 28 Mar 2021 21:13:00 +0300 Subject: [PATCH] setup next-sitemap --- .env.development | 3 +- .env.prod | 3 +- .env.test | 3 +- .gitignore | 4 +++ Dockerfile | 1 + Dockerfile.prod | 1 + next-sitemap.js | 4 +++ package-lock.json | 85 +++++++++++++++++++++++++++++++++++++++++++++++ package.json | 2 ++ 9 files changed, 103 insertions(+), 3 deletions(-) create mode 100644 next-sitemap.js diff --git a/.env.development b/.env.development index 1b821bd..ddef833 100644 --- a/.env.development +++ b/.env.development @@ -1 +1,2 @@ -NEXT_PUBLIC_API_URL=https://api.dev.sahkoinsinoorikilta.fi/api \ No newline at end of file +NEXT_PUBLIC_API_URL=https://api.dev.sahkoinsinoorikilta.fi/api +SITE_URL=https://dev.sahkoinsinoorikilta.fi diff --git a/.env.prod b/.env.prod index a280e29..409de90 100644 --- a/.env.prod +++ b/.env.prod @@ -1 +1,2 @@ -NEXT_PUBLIC_API_URL=https://api.sahkoinsinoorikilta.fi/api \ No newline at end of file +NEXT_PUBLIC_API_URL=https://api.sahkoinsinoorikilta.fi/api +SITE_URL=https://sahkoinsinoorikilta.fi diff --git a/.env.test b/.env.test index 1b821bd..ddef833 100644 --- a/.env.test +++ b/.env.test @@ -1 +1,2 @@ -NEXT_PUBLIC_API_URL=https://api.dev.sahkoinsinoorikilta.fi/api \ No newline at end of file +NEXT_PUBLIC_API_URL=https://api.dev.sahkoinsinoorikilta.fi/api +SITE_URL=https://dev.sahkoinsinoorikilta.fi diff --git a/.gitignore b/.gitignore index 7516669..b6e85f9 100644 --- a/.gitignore +++ b/.gitignore @@ -36,3 +36,7 @@ yarn-error.log* # vercel .vercel + +# SEO +public/robots.txt +public/sitemap.xml diff --git a/Dockerfile b/Dockerfile index 3f6a687..a2e0dbb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,6 +10,7 @@ COPY types types/ ENV NEXT_TELEMETRY_DISABLED=1 ENV NEXT_PUBLIC_API_URL=https://api.dev.sahkoinsinoorikilta.fi/api +ENV SITE_URL=https://dev.sahkoinsinoorikilta.fi RUN npm run build FROM node:14-alpine as server diff --git a/Dockerfile.prod b/Dockerfile.prod index 26992f1..ceba872 100644 --- a/Dockerfile.prod +++ b/Dockerfile.prod @@ -10,6 +10,7 @@ COPY types types/ ENV NEXT_TELEMETRY_DISABLED=1 ENV NEXT_PUBLIC_API_URL=https://api.sahkoinsinoorikilta.fi/api +ENV SITE_URL=https://sahkoinsinoorikilta.fi RUN npm run build FROM node:14-alpine as server diff --git a/next-sitemap.js b/next-sitemap.js new file mode 100644 index 0000000..5e47cf4 --- /dev/null +++ b/next-sitemap.js @@ -0,0 +1,4 @@ +module.exports = { + siteUrl: process.env.SITE_URL || "https://sahkoinsinoorikilta.fi", + generateRobotsTxt: true, +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 283f7ba..54dcefa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -46,6 +46,7 @@ "eslint-plugin-react": "7.22.0", "eslint-plugin-react-hooks": "4.2.0", "husky": "5.1.3", + "next-sitemap": "^1.6.9", "npm-run-all": "4.1.5", "stylelint": "13.11.0", "stylelint-config-recommended": "3.0.0", @@ -2955,6 +2956,12 @@ "node": ">=4" } }, + "node_modules/@corex/deepmerge": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@corex/deepmerge/-/deepmerge-2.5.6.tgz", + "integrity": "sha512-zvClQyrUGV4Hzr2zWnyD/MS0DrNWJ9jMKFLYA/abmsU4dObMuFXhragGqWpWHW6G/ghJpf09E+JumTo5jSb9rg==", + "dev": true + }, "node_modules/@emotion/is-prop-valid": { "version": "0.8.8", "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", @@ -8948,6 +8955,33 @@ "escape-string-regexp": "^1.0.5" } }, + "node_modules/matcher": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-4.0.0.tgz", + "integrity": "sha512-S6x5wmcDmsDRRU/c2dkccDwQPXoFczc5+HpQ2lON8pnvHlnvHAHj5WlLVvw6n6vNyHuVugYrFohYxbS+pvFpKQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/matcher/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/mathml-tag-names": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", @@ -9477,6 +9511,23 @@ } } }, + "node_modules/next-sitemap": { + "version": "1.6.9", + "resolved": "https://registry.npmjs.org/next-sitemap/-/next-sitemap-1.6.9.tgz", + "integrity": "sha512-3KeFgaIrFPV6S51qkSPELOEgfl63gdpCG7ttR2XU7GsbjeNJegUbu+CUt4WoaK5mixtk6H6lEl8lM+MIf/hOWQ==", + "dev": true, + "dependencies": { + "@corex/deepmerge": "^2.5.6", + "matcher": "^4.0.0", + "minimist": "^1.2.5" + }, + "bin": { + "next-sitemap": "bin/next-sitemap" + }, + "peerDependencies": { + "next": "*" + } + }, "node_modules/next/node_modules/browserslist": { "version": "4.16.1", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.1.tgz", @@ -18238,6 +18289,12 @@ } } }, + "@corex/deepmerge": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@corex/deepmerge/-/deepmerge-2.5.6.tgz", + "integrity": "sha512-zvClQyrUGV4Hzr2zWnyD/MS0DrNWJ9jMKFLYA/abmsU4dObMuFXhragGqWpWHW6G/ghJpf09E+JumTo5jSb9rg==", + "dev": true + }, "@emotion/is-prop-valid": { "version": "0.8.8", "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", @@ -23150,6 +23207,23 @@ "escape-string-regexp": "^1.0.5" } }, + "matcher": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-4.0.0.tgz", + "integrity": "sha512-S6x5wmcDmsDRRU/c2dkccDwQPXoFczc5+HpQ2lON8pnvHlnvHAHj5WlLVvw6n6vNyHuVugYrFohYxbS+pvFpKQ==", + "dev": true, + "requires": { + "escape-string-regexp": "^4.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + } + } + }, "mathml-tag-names": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", @@ -23669,6 +23743,17 @@ } } }, + "next-sitemap": { + "version": "1.6.9", + "resolved": "https://registry.npmjs.org/next-sitemap/-/next-sitemap-1.6.9.tgz", + "integrity": "sha512-3KeFgaIrFPV6S51qkSPELOEgfl63gdpCG7ttR2XU7GsbjeNJegUbu+CUt4WoaK5mixtk6H6lEl8lM+MIf/hOWQ==", + "dev": true, + "requires": { + "@corex/deepmerge": "^2.5.6", + "matcher": "^4.0.0", + "minimist": "^1.2.5" + } + }, "nice-try": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz", diff --git a/package.json b/package.json index 6f6fdb9..8ba107e 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "homepage": "https://sahkoinsinoorikilta.fi", "scripts": { "build": "next build", + "postbuild": "next-sitemap", "export": "next export", "lint": "npm run lint:es && npm run lint:css", "lint:es": "eslint . --ext .ts,.tsx", @@ -53,6 +54,7 @@ "eslint-plugin-react": "7.22.0", "eslint-plugin-react-hooks": "4.2.0", "husky": "5.1.3", + "next-sitemap": "^1.6.9", "npm-run-all": "4.1.5", "stylelint": "13.11.0", "stylelint-config-recommended": "3.0.0",