Чего мне не хватает в моем приложении Express при рендеринге React SSR? - PullRequest
0 голосов
/ 07 января 2019

Я схожу с ума по этой проблеме. Я не могу понять, что мне не хватает.

Моя настройка следующая:

  • Экспресс-сервер, созданный с помощью Express Generator
  • Приложение React, созданное с помощью CRA

Я хотел бы иметь возможность сделать SSR для моих скриптов React.

Структура папок выглядит следующим образом:

src/
    bin/
        www
    routes/
        index.js
    app.js
    .babelrc
    client/ (React app files)
        src/
            App.js

Я запускаю сервер Express, используя следующий скрипт в моем package.json:

nodemon --exec babel-node ./src/bin/www

Я пытаюсь отобразить компонент React в routes/index.js, выполнив следующее:

import React from 'react'
import { renderToString } from 'react-dom/server'
import App from '../client/src/App';
...

.babelrc выглядит так:

{
    "presets": ["@babel/preset-env", "@babel/preset-react"]
}

А в файле /bin/www я поставил следующее (вверху):

require("@babel/register")({
    presets: ["@babel/preset-react"]
})
...

Но все, что я могу выбрать, это .....

SyntaxError: Unexpected token import

, который указывает на:

/srv/app/customer-server/src/client/src/App.js:1
(function (exports, require, module, __filename, __dirname) { import React, { Component } from 'react';

Что мне здесь не хватает? Я делаю невозможное для такого рода настройки?

Спасибо

1 Ответ

0 голосов
/ 11 января 2019

Ответ в том, что я использовал Docker со смонтированными томами, которые вызывали ошибку, после того, как я понял это, все работало нормально.

...