diff --git a/package.json b/package.json index df8b4846a13..d62e959f062 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,8 @@ "optimize:styles": "csso dist/css/main.css --output dist/css/main.css", "rev": "node-file-rev --manifest=generated/rev.json --root=dist dist/css/* dist/js/* dist/img/*.svg dist/img/cover/*.png dist/img/ln/*.svg dist/img/shop/*.jpg dist/img/team/*.jpg dist/img/team/*.png", "sitemap": "node tasks/generate_sitemap.js", - "prod": "NODE_ENV=production npm-run-all build optimize -s build:pages sitemap" + "redirects": "node tasks/generate_redirects.js", + "prod": "NODE_ENV=production npm-run-all build optimize -s build:pages -p redirects sitemap" }, "dependencies": { "amplitudejs": "5.3.2" diff --git a/tasks/generate_redirects.js b/tasks/generate_redirects.js new file mode 100644 index 00000000000..c8eca433d06 --- /dev/null +++ b/tasks/generate_redirects.js @@ -0,0 +1,25 @@ +const { mkdirSync, statSync, writeFileSync } = require('fs') +const { dirname, join, resolve } = require('path') + +const redirects = [ + ['/podcast/verschiedenes-special-zur-adoping-bitcoin-konferenz-in-el-salvador/', '/podcast/verschiedenes-special-zur-adopting-bitcoin-konferenz-in-el-salvador/'] +] + +const dist = resolve(__dirname, '..', 'dist') + +const exists = filePath => { + try { + const stat = statSync(filePath) + return stat.isFile() || stat.isDirectory() + } catch (err) { + return false + } +} + +redirects.forEach(([path, redirect]) => { + const target = join(dist, path, 'index.html') + if (exists(target)) return + + mkdirSync(dirname(target), { recursive: true }) + writeFileSync(target, `RedirectClick here if you are not redirected.`) +})