Я пытаюсь извлечь исходный HTML-код из кода реакции на стороне сервера.Для этого я использую официальную библиотечную функцию react-dom/server
renderToStaticMarkup()
, указанную здесь: https://reactjs.org/docs/react-dom-server.html#rendertostaticmarkup
Я читаю исходный файл реакции, перенося синтаксис JSX и ES6 в CommonJS с помощью Babel изатем синтаксический анализ вычисленного CommonJS в renderToStaticMarkup()
.
Код реакции:
import React from 'react';
class Test extends React.Component {
render() {
return `<p>Hello World!</p>`;
}
}
export default Test;
Код на стороне сервера:
const { renderToStaticMarkup } = require( 'react-dom/server');
const Babel = require( '@babel/core' );
const Fsp = require( 'fs' ).promises;
(async () => {
let fileContent = await Fsp.readFile( 'react.js', 'utf-8' );
let code = Babel.transform(
fileContent,
{
presets: [ '@babel/preset-env', '@babel/preset-react' ],
comments: false,
minified: true
}).code;
let result = renderToStaticMarkup( eval( code ) );
console.log( result );
})();
Этот пример кода возвращает пустую строку ""
вместо ожидаемого <p>Hello World!</p>