From e4aff3c8d6085bd93bc92c20ef8648e484d5393f Mon Sep 17 00:00:00 2001 From: Sebastian Markbage Date: Fri, 4 Dec 2020 20:11:10 -0500 Subject: [PATCH 1/3] Don't use async/await Babel transpilation fails for some reason in prod. --- fixtures/flight/server/handler.server.js | 28 ++++++++++++++---------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/fixtures/flight/server/handler.server.js b/fixtures/flight/server/handler.server.js index cb9bcbf306e1d..332c95ccaaac2 100644 --- a/fixtures/flight/server/handler.server.js +++ b/fixtures/flight/server/handler.server.js @@ -1,20 +1,26 @@ 'use strict'; import {pipeToNodeWritable} from 'react-transport-dom-webpack/server'; -import {readFileSync} from 'fs'; +import {readFile} from 'fs'; import {resolve} from 'path'; import * as React from 'react'; -module.exports = async function(req, res) { - const m = await import('../src/App.server.js'); +module.exports = function(req, res) { // const m = require('../src/App.server.js'); - const App = m.default.default || m.default; - res.setHeader('Access-Control-Allow-Origin', '*'); - const moduleMap = JSON.parse( - readFileSync( + import('../src/App.server.js').then(m => { + readFile( resolve(__dirname, '../dist/react-transport-manifest.json'), - 'utf8' - ) - ); - pipeToNodeWritable(, res, moduleMap); + 'utf8', + (err, data) => { + if (err) { + throw err; + } + + const App = m.default.default || m.default; + res.setHeader('Access-Control-Allow-Origin', '*'); + const moduleMap = JSON.parse(data); + pipeToNodeWritable(, res, moduleMap); + } + ); + }); }; From 7ca4494da13a8c69f47d9fc79a5bdb481ef9df94 Mon Sep 17 00:00:00 2001 From: Sebastian Markbage Date: Fri, 4 Dec 2020 20:25:23 -0500 Subject: [PATCH 2/3] Set up production runner command Uses python because meh. Just to show it's static. --- fixtures/flight/package.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/fixtures/flight/package.json b/fixtures/flight/package.json index 3470e72e753aa..551d810d57732 100644 --- a/fixtures/flight/package.json +++ b/fixtures/flight/package.json @@ -68,7 +68,9 @@ "start": "concurrently \"npm run start:server\" \"npm run start:client\"", "start:client": "node scripts/start.js", "start:server": "NODE_ENV=development node --experimental-loader ./loader/index.js --conditions=react-server server", - "start:prod": "node scripts/build.js && NODE_ENV=production node server", + "start:prod": "node scripts/build.js && concurrently \"npm run start:prod-server\" \"npm run start:prod-client\"", + "start:prod-client": "cd ./build && python -m SimpleHTTPServer 3000", + "start:prod-server": "NODE_ENV=production node --experimental-loader ./loader/index.js --conditions=react-server server", "build": "node scripts/build.js", "test": "node scripts/test.js --env=jsdom" }, From d96f5f36b900f2b2e0737401282675b746f485e2 Mon Sep 17 00:00:00 2001 From: Sebastian Markbage Date: Fri, 4 Dec 2020 20:40:05 -0500 Subject: [PATCH 3/3] Use build folder in prod --- fixtures/flight/server/handler.server.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fixtures/flight/server/handler.server.js b/fixtures/flight/server/handler.server.js index 332c95ccaaac2..29d493303b684 100644 --- a/fixtures/flight/server/handler.server.js +++ b/fixtures/flight/server/handler.server.js @@ -8,8 +8,9 @@ import * as React from 'react'; module.exports = function(req, res) { // const m = require('../src/App.server.js'); import('../src/App.server.js').then(m => { + const dist = process.env.NODE_ENV === 'development' ? 'dist' : 'build'; readFile( - resolve(__dirname, '../dist/react-transport-manifest.json'), + resolve(__dirname, `../${dist}/react-transport-manifest.json`), 'utf8', (err, data) => { if (err) {