@samitouri / QOS-React-2 / commits / 0db61a08be

Fix Flight Prod Fixture (#20382)

* Don't use async/await Babel transpilation fails for some reason in prod. * Set up production runner command Uses python because meh. Just to show it's static. * Use build folder in prod

Sebastian Markbåge committed Dec 4, 2020 at 21:00 UTC 0db61a08befe6406aa93568708224d1cca2aff7d
2 files changed +22 -13
fixtures/flight/package.json
+3 -1
@@ -68,7 +68,9 @@
68 "start": "concurrently \"npm run start:server\" \"npm run start:client\"",
69 "start:client": "node scripts/start.js",
70 "start:server": "NODE_ENV=development node --experimental-loader ./loader/index.js --conditions=react-server server",
71 - "start:prod": "node scripts/build.js && NODE_ENV=production node server",
71 + "start:prod": "node scripts/build.js && concurrently \"npm run start:prod-server\" \"npm run start:prod-client\"",
72 + "start:prod-client": "cd ./build && python -m SimpleHTTPServer 3000",
73 + "start:prod-server": "NODE_ENV=production node --experimental-loader ./loader/index.js --conditions=react-server server",
74 "build": "node scripts/build.js",
75 "test": "node scripts/test.js --env=jsdom"
76 },
fixtures/flight/server/handler.server.js
+19 -12
@@ -1,20 +1,27 @@
1 'use strict';
2
3 import {pipeToNodeWritable} from 'react-transport-dom-webpack/server';
4 -import {readFileSync} from 'fs';
4 +import {readFile} from 'fs';
5 import {resolve} from 'path';
6 import * as React from 'react';
7
8 -module.exports = async function(req, res) {
9 - const m = await import('../src/App.server.js');
8 +module.exports = function(req, res) {
9 // const m = require('../src/App.server.js');
11 - const App = m.default.default || m.default;
12 - res.setHeader('Access-Control-Allow-Origin', '*');
13 - const moduleMap = JSON.parse(
14 - readFileSync(
15 - resolve(__dirname, '../dist/react-transport-manifest.json'),
16 - 'utf8'
17 - )
18 - );
19 - pipeToNodeWritable(<App />, res, moduleMap);
10 + import('../src/App.server.js').then(m => {
11 + const dist = process.env.NODE_ENV === 'development' ? 'dist' : 'build';
12 + readFile(
13 + resolve(__dirname, `../${dist}/react-transport-manifest.json`),
14 + 'utf8',
15 + (err, data) => {
16 + if (err) {
17 + throw err;
18 + }
19 +
20 + const App = m.default.default || m.default;
21 + res.setHeader('Access-Control-Allow-Origin', '*');
22 + const moduleMap = JSON.parse(data);
23 + pipeToNodeWritable(<App />, res, moduleMap);
24 + }
25 + );
26 + });
27 };