diff --git a/configs/webpack/prod.js b/configs/webpack/prod.js index 3fec744..c954a86 100644 --- a/configs/webpack/prod.js +++ b/configs/webpack/prod.js @@ -2,6 +2,7 @@ const merge = require('webpack-merge'); const path = require('path') const resolve = path.resolve; +const DynamicCdnWebpackPlugin = require('dynamic-cdn-webpack-plugin'); const PrerenderSPAPlugin = require('prerender-spa-plugin'); /* NOTE: This is a list of all routes that are prerendered for production use. @@ -21,6 +22,7 @@ module.exports = merge(commonConfig, { }, devtool: 'source-map', plugins: [ + new DynamicCdnWebpackPlugin(), new PrerenderSPAPlugin({ // Required - The path to the webpack-outputted app to prerender. staticDir: resolve(__dirname, '../../dist'), diff --git a/package-lock.json b/package-lock.json index e5b8856..e02aac6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4211,6 +4211,30 @@ "stream-shift": "^1.0.0" } }, + "dynamic-cdn-webpack-plugin": { + "version": "4.0.0-rc.1", + "resolved": "https://registry.npmjs.org/dynamic-cdn-webpack-plugin/-/dynamic-cdn-webpack-plugin-4.0.0-rc.1.tgz", + "integrity": "sha512-yKfyj9TAeAoir3H6tS5mKVPrja8CKYWKFQYBa2/TEmLZLoSoVVHKdvSN0TNMPC2L5g2e0RoyOTBfNroU64YgYA==", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "html-webpack-include-assets-plugin": "1.0.3", + "read-pkg-up": "^3.0.0", + "resolve-pkg": "^1.0.0" + }, + "dependencies": { + "read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + } + } + } + }, "each-async": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/each-async/-/each-async-1.1.1.tgz", @@ -7104,6 +7128,17 @@ "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=", "dev": true }, + "html-webpack-include-assets-plugin": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/html-webpack-include-assets-plugin/-/html-webpack-include-assets-plugin-1.0.3.tgz", + "integrity": "sha512-P8qqFWyTSBHySuWBZINZw/Xqas7bB5d8BspeJN7GgB2/1CLV/xF3GX2dqy4qlKDySOgXPYBp5z64f8Xvr5prSg==", + "dev": true, + "requires": { + "glob": "^7.1.2", + "minimatch": "^3.0.4", + "slash": "^1.0.0" + } + }, "html-webpack-plugin": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz", @@ -9523,6 +9558,15 @@ "react-lifecycles-compat": "^3.0.2" } }, + "module-to-cdn": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/module-to-cdn/-/module-to-cdn-3.1.2.tgz", + "integrity": "sha512-KxQI3NcruZtwWZsgnJCKmqciotnKR3gNj6QJqCWo5eCyhLtBBi8Sw2pzDCsHEJndhzoDhdf9kWKobiBv7CwQMw==", + "dev": true, + "requires": { + "semver": "^5.3.0" + } + }, "moment": { "version": "2.22.2", "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz", @@ -13251,6 +13295,23 @@ "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-2.2.0.tgz", "integrity": "sha512-bAFz9ld18RzJfddgrO2e/0S2O81710++chRMUxHjXOYKF6jTAMrUNZrEZ1PvV0zlhfjidm08iRPdTLPno1FuRg==" }, + "resolve-pkg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg/-/resolve-pkg-1.0.0.tgz", + "integrity": "sha1-4ZoV54rKLhJEYdySsuOUPvk0lNk=", + "dev": true, + "requires": { + "resolve-from": "^2.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=", + "dev": true + } + } + }, "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", diff --git a/package.json b/package.json index 25d1d35..fa63d45 100644 --- a/package.json +++ b/package.json @@ -48,12 +48,14 @@ "babel-preset-react": "^6.24.1", "css-loader": "^0.28.11", "dotenv-webpack": "^1.5.7", + "dynamic-cdn-webpack-plugin": "^4.0.0-rc.1", "file-loader": "^1.1.11", "fs-extra": "^6.0.1", "html-webpack-plugin": "^3.2.0", "husky": "^1.0.0-rc.9", "image-webpack-loader": "^4.3.0", "json-server": "^0.14.0", + "module-to-cdn": "^3.1.2", "node-sass": "^4.9.0", "npm-run-all": "^4.1.3", "plop": "^2.0.0",