2019-11-09 10:44:27 +08:00
|
|
|
'use strict';
|
|
|
|
|
|
2022-10-18 22:15:52 +08:00
|
|
|
const {renderToPipeableStream} = require('react-server-dom-webpack/server');
|
2020-12-08 09:23:49 +08:00
|
|
|
const {readFile} = require('fs');
|
|
|
|
|
const {resolve} = require('path');
|
|
|
|
|
const React = require('react');
|
2019-11-09 10:44:27 +08:00
|
|
|
|
2020-12-05 10:00:57 +08:00
|
|
|
module.exports = function(req, res) {
|
2020-11-17 12:46:27 +08:00
|
|
|
// const m = require('../src/App.server.js');
|
2020-12-05 10:00:57 +08:00
|
|
|
import('../src/App.server.js').then(m => {
|
|
|
|
|
const dist = process.env.NODE_ENV === 'development' ? 'dist' : 'build';
|
|
|
|
|
readFile(
|
2020-12-08 09:54:28 +08:00
|
|
|
resolve(__dirname, `../${dist}/react-client-manifest.json`),
|
2020-12-05 10:00:57 +08:00
|
|
|
'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);
|
2021-10-06 12:31:06 +08:00
|
|
|
const {pipe} = renderToPipeableStream(
|
|
|
|
|
React.createElement(App),
|
|
|
|
|
moduleMap
|
|
|
|
|
);
|
|
|
|
|
pipe(res);
|
2020-12-05 10:00:57 +08:00
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
});
|
2019-11-09 10:44:27 +08:00
|
|
|
};
|