diff --git a/packages/reporters/dev-server/src/Server.js b/packages/reporters/dev-server/src/Server.js index 55fd62124de..b407e7f478b 100644 --- a/packages/reporters/dev-server/src/Server.js +++ b/packages/reporters/dev-server/src/Server.js @@ -142,25 +142,17 @@ export default class Server extends EventEmitter { sendIndex(req: Request, res: Response) { if (this.bundleGraph) { - // If the main asset is an HTML file, serve it - let htmlBundle = this.bundleGraph.traverseBundles( - (bundle, context, {stop}) => { - if (bundle.type !== 'html' || !bundle.isEntry) return; - - if (!context) { - context = bundle; - } - - if ( - context && + // If there is exactly one entry HTML file, serve it + const htmlBundles = this.bundleGraph + .getBundles() + .filter( + bundle => + bundle.type === 'html' && + bundle.isEntry && bundle.filePath && - bundle.filePath.endsWith('index.html') - ) { - stop(); - return bundle; - } - }, - ); + bundle.filePath.endsWith('.html'), + ); + const htmlBundle = htmlBundles.length === 1 ? htmlBundles[0] : undefined; if (htmlBundle) { req.url = `/${path.relative( diff --git a/packages/reporters/dev-server/src/templates/404.html b/packages/reporters/dev-server/src/templates/404.html index 89b5c3cb0c4..ab3dc471181 100644 --- a/packages/reporters/dev-server/src/templates/404.html +++ b/packages/reporters/dev-server/src/templates/404.html @@ -10,7 +10,7 @@ margin: 0; font-family: sans-serif; } - + .error-title { color: #282c33; font-size: 3rem; @@ -25,10 +25,16 @@ padding: 0 25px; margin: 0; } + + .long-desc { + color: #282c33; + padding: 0 25px; + }

404

Page not found.

+

You may have zero or multiple HTML entries.