React SSR - модули загрузки браузера, которые были экспортированы с использованием «экспорта по умолчанию» - PullRequest
0 голосов
/ 13 января 2019

Возможно, даже не имеет значения, что мы говорим о реактивном проекте, но я указал это на всякий случай.

Я экспортирую в компоненты проекта React SSR с использованием экспорта по умолчанию, например:

import React from 'react';

export default class TestComponent extends React.PureComponent {

    render() {
        return (
            <div className="footer">
                My Footer
            </div>
        );
    }

}

На стороне сервера все работает нормально.

В файле tsconfig.json установлен модуль commonjs.

Я пытаюсь импортировать те же модули на стороне клиента, и до сих пор у меня не получается.

Я пробовал требовать, systemjs и commonjs.

require и systemjs говорят, что экспорт не определен.

Uncaught ReferenceError: экспорт не определен at testComponent.js: 5

т.е. эта строка:

Object.defineProperty (export, "__esModule", {value: true});

Вот скомпилированный testComponent.js:

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = __importDefault(require("react"));
class TestComponent extends react_1.default.PureComponent {
    render() {
        return (react_1.default.createElement("div", { className: "footer" }, "My Footer"));
    }
}
exports.default = TestComponent;

Когда я пытаюсь внедрить common.js, я получаю сообщение об ошибке, в котором говорится, что элемент не найден, прежде чем я даже пытаюсь что-либо импортировать. Мое единственное предположение, что я должен пойти на полную установку, а не вставлять только common.js.

Моя цель - динамически загружать компоненты по требованию на стороне клиента, я не ищу каких-либо предопределенных решений для разделения кода. С учетом сказанного я даже не уверен, стоит ли мне работать с commonjs.

...