Как человек, у которого нет опыта работы с компилятором, который пытается заставить Линарию работать на бэкэнде.
Моя проблема в том, что я в настоящее время запускаю Typescript / Express / NodeJS на бэкэнде и хочу сервер-side-render моего React-приложения, содержащего "Linaria", которое нужно передать с помощью babel.
Как я могу преобразовать следующий код, приведенный ниже, чтобы программно пропустить приложение через транспортер babel и каким-то образом его SSR?тем не менее, не знаю, как это будет работать.
import { Request, Response } from "express";
import * as React from "react";
import ReactDOMServer from "react-dom/server";
import { ServerStyleSheet, StyleSheetManager } from "styled-components";
import { StaticRouter } from "react-router";
import { memoize } from "../util/memoize/memoize";
import { collect } from "linaria/server";
import { App } from "../../frontend/src/App";
const serverRender = memoize((url: string) => {
const context = {};
try {
const html = ReactDOMServer.renderToStaticMarkup(
<StaticRouter location={url} context={context}>
<App />
</StaticRouter>
); // Fails on <App/> Because styled hasn't been converted using babel.
console.log(html);
} catch (error) {
// handle error
console.error(error);
}
});