diff --git a/package-lock.json b/package-lock.json index 192c4e99bb44..044e8aecdc7d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12437,6 +12437,39 @@ "strip-indent": "1.0.1" } }, + "redirect-webpack-plugin": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/redirect-webpack-plugin/-/redirect-webpack-plugin-0.1.1.tgz", + "integrity": "sha512-YivwISR6PUxZxU/ltaDeV681QG20SJpYpiLH0KYgJ0bZRCVjwCZenDxLRbp05A0GCJ4Qru/D75xkWySt2897HQ==", + "dev": true, + "requires": { + "webpack-sources": "1.1.0" + }, + "dependencies": { + "source-list-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", + "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "webpack-sources": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz", + "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==", + "dev": true, + "requires": { + "source-list-map": "2.0.0", + "source-map": "0.6.1" + } + } + } + }, "reduce": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/reduce/-/reduce-1.0.1.tgz", diff --git a/package.json b/package.json index 3d83293f1c07..b3e825196863 100644 --- a/package.json +++ b/package.json @@ -85,6 +85,7 @@ "prismjs": "^1.9.0", "raw-loader": "^0.5.1", "remark-autolink-headings": "^5.0.0", + "redirect-webpack-plugin": "^0.1.1", "remark-loader": "^0.3.0", "remark-mermaid": "^0.2.0", "request": "^2.81.0", diff --git a/redirects.json b/redirects.json deleted file mode 100644 index bc73ff74dab2..000000000000 --- a/redirects.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "/support": "/contribute", - "/writers-guide": "/contribute/writers-guide", - "/api/passing-a-config": "configuration-types", - "/guides/code-splitting-import": "/guides/code-splitting", - "/guides/code-splitting-require": "/guides/code-splitting", - "/guides/code-splitting-async": "/guides/code-splitting", - "/guides/code-splitting-css": "/guides/code-splitting", - "/guides/code-splitting-libraries": "/guides/code-splitting", - "/guides/why-webpack": "/comparison", - "/guides/production-build": "/guides/production", - "/get-started": "/guides/getting-started", - "/get-started/install-webpack": "/guides/installation", - "/get-started/why-webpack": "/guides/why-webpack", - "/pluginsapi": "/api/plugins", - "/pluginsapi/compiler": "/api/compiler", - "/pluginsapi/template": "/api/template", - "/api/plugins/compiler": "/api/compiler", - "/api/plugins/compilation": "/api/compilation", - "/api/plugins/module-factories": "/api/module-factories", - "/api/plugins/parser": "/api/parser", - "/api/plugins/tapable": "/api/tapable", - "/api/plugins/template": "/api/template", - "/api/plugins/resolver": "/api/resolver", - "/development": "/contribute", - "/development/plugin-patterns": "/contribute/plugin-patterns", - "/development/release-process": "/contribute/release-process", - "/development/how-to-write-a-loader": "/contribute/writing-a-loader", - "/development/how-to-write-a-plugin": "/contribute/writing-a-plugin" -} diff --git a/webpack.prod.js b/webpack.prod.js index c9260c9ae2d2..436a41d5fcb6 100644 --- a/webpack.prod.js +++ b/webpack.prod.js @@ -4,6 +4,7 @@ const webpack = require('webpack'); const merge = require('webpack-merge'); const UglifyJSPlugin = require('uglifyjs-webpack-plugin'); const SSGPlugin = require('static-site-generator-webpack-plugin'); +const RedirectWebpackPlugin = require('redirect-webpack-plugin'); // Load Common Configuration const common = require('./webpack.common.js'); @@ -31,6 +32,39 @@ module.exports = env => [ globals: { window: {} } + }), + new RedirectWebpackPlugin({ + redirects: { + 'support': '/contribute/', + 'writers-guide': '/contribute/writers-guide/', + 'get-started': '/guides/getting-started/', + 'get-started/install-webpack': '/guides/installation/', + 'get-started/why-webpack': '/guides/why-webpack/', + 'pluginsapi': '/api/plugins/', + 'pluginsapi/compiler': '/api/compiler-hooks/', + 'pluginsapi/template': '/api/template/', + 'api/passing-a-config': '/configuration/configuration-types/', + 'api/plugins/compiler': '/api/compiler-hooks/', + 'api/plugins/compilation': '/api/compilation/', + 'api/plugins/module-factories': '/api/module-methods/', + 'api/plugins/parser': '/api/parser/', + 'api/plugins/tapable': '/api/tapable/', + 'api/plugins/template': '/api/template/', + 'api/plugins/resolver': '/api/resolver/', + 'development': '/contribute/', + 'development/plugin-patterns': '/contribute/plugin-patterns/', + 'development/release-process': '/contribute/release-process/', + 'development/how-to-write-a-loader': '/contribute/writing-a-loader/', + 'development/how-to-write-a-plugin': '/contribute/writing-a-plugin/', + 'guides/code-splitting-import': '/guides/code-splitting/', + 'guides/code-splitting-require': '/guides/code-splitting/', + 'guides/code-splitting-async': '/guides/code-splitting/', + 'guides/code-splitting-css': '/guides/code-splitting/', + 'guides/code-splitting-libraries': '/guides/code-splitting/', + 'guides/why-webpack': '/comparison/', + 'guides/production-build': '/guides/production/', + 'migrating': '/migrate/3/' + } }) ], output: {