diff --git a/package.json b/package.json index d58cc7276c..47884b0a32 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,8 @@ "url": "https://github.com/facebook/Docusaurus.git" }, "scripts": { + "lint:v1": "cd v1 && yarn lint", + "lint:v2": "cd v2 && yarn lint", "precommit": "lint-staged", "prettier": "prettier --config .prettierrc --write \"**/*.js\"", "prettier:diff": "prettier --config .prettierrc --list-different \"**/*.js\"", @@ -17,7 +19,7 @@ }, "lint-staged": { "linters": { - "{v1,v2}/**/*.js": ["yarn lint --fix", "yarn prettier", "git add"] + "{v1,v2}/**/*.js": ["yarn lint:v1 --fix", "yarn lint:v2 --fix", "yarn prettier", "git add"] } } } diff --git a/v2/lib/core/clientEntry.js b/v2/lib/core/clientEntry.js index 178146b2ef..339d29b3ef 100644 --- a/v2/lib/core/clientEntry.js +++ b/v2/lib/core/clientEntry.js @@ -1,14 +1,13 @@ import React from 'react'; +import Loadable from 'react-loadable'; import {BrowserRouter} from 'react-router-dom'; import ReactDOM from 'react-dom'; import App from './App'; -import prerender from './prerender'; -import routes from '@generated/routes'; // eslint-disable-line // Client side render (e.g: running in browser) to become single-page application (SPA) -if (typeof window !== 'undefined' && typeof document !== 'undefined') { - prerender(routes, window.location.pathname).then(() => { +if (typeof document !== 'undefined') { + Loadable.preloadReady().then(() => { ReactDOM.render( diff --git a/v2/lib/core/prerender.js b/v2/lib/core/preload.js similarity index 88% rename from v2/lib/core/prerender.js rename to v2/lib/core/preload.js index 30adf5110f..f4eaf58fd7 100644 --- a/v2/lib/core/prerender.js +++ b/v2/lib/core/preload.js @@ -4,7 +4,7 @@ import {matchRoutes} from 'react-router-config'; * This helps us to make sure all the async component for that particular route * is loaded before rendering. This is to avoid loading screens on first page load */ -export default function prerender(routeConfig, providedLocation) { +export default function preload(routeConfig, providedLocation) { const matches = matchRoutes(routeConfig, providedLocation); return Promise.all( matches.map(match => { diff --git a/v2/lib/core/serverEntry.js b/v2/lib/core/serverEntry.js index 4469f7340a..443c38c304 100644 --- a/v2/lib/core/serverEntry.js +++ b/v2/lib/core/serverEntry.js @@ -4,13 +4,13 @@ import ReactDOMServer from 'react-dom/server'; import Helmet from 'react-helmet'; import App from './App'; -import prerender from './prerender'; +import preload from './preload'; import routes from '@generated/routes'; // eslint-disable-line import webpackClientStats from '@build/client.stats.json'; //eslint-disable-line // Renderer for static-site-generator-webpack-plugin (async rendering via promises) export default function render(locals) { - return prerender(routes, locals.path).then(() => { + return preload(routes, locals.path).then(() => { const context = {}; const appHtml = ReactDOMServer.renderToString(