renderToString вызывает Uncaught ReferenceError: require не определен - PullRequest
0 голосов
/ 12 сентября 2018

Я в настоящее время сталкиваюсь с этой проблемой в течение 3 дней и не могу решить:

Uncaught ReferenceError: require is not defined
at Object.<anonymous> (external "stream":1)
at n (bootstrap:19)
at Object.<anonymous> (react-dom-server.node.production.min.js:10)
at n (bootstrap:19)
at Object.<anonymous> (server.node.js:4)
at n (bootstrap:19)
at Object.<anonymous> (server.js:3)
at n (bootstrap:19)
at Object.<anonymous> (renderer.js:2)
at n (bootstrap:19)

По сути, в моем файле renderer.js у меня есть эта функциональность:

import {renderToString} from 'react-dom/server';

export default (req) => {
    let context = {};
    const content = renderToString(
        <Router location={req.path} context={context}>
            <FullPage />
        </Router>
    );
};

Этоэто основная строка, которая вызывает ошибку в основном, это происходит, когда я пытаюсь импортировать метод renderToString из 'response-dom / server':

enter image description here

* 1013Я пробовал разные вещи, такие как удаление цели: «узел», но ни одно из решений не сработало.Что может быть причиной этого?Я застрял на этом в течение последних 3 дней и не уверен, что это такое.

Моя конфигурация Webpack:

webpack.base.config.js

module.exports = {
devtool: 'source-map',
module: {
    rules: [
        {
            test: /\.js?$/,
            options: {
                presets: [
                    'react', 'stage-2',
                    ['env', { targets: { browsers: ['last 2 versions'] } }]
                ]
            },
            loader: 'babel-loader',
            exclude: /node_modules/
        }
    ]
}

};

webpack.server.js

const webpack = require('webpack');
const path = require('path');

const SERVER_DIR = path.resolve(__dirname, 'src/server');
const BUILD_DIR = path.resolve(__dirname, 'dist');

const merge = require('webpack-merge');
const baseConfig = require('./webpack.base.config');

const config = {
    target: 'node',
    entry: SERVER_DIR + '/index.js',

    mode: 'production',
        output: {
        path: BUILD_DIR,
        filename: 'bundle.server.js'
    }
};


module.exports = merge(baseConfig, config);
...