renderToString导致未捕获的ReferenceError:require未定义

时间:2018-09-12 19:34:23

标签: javascript reactjs require

我目前面临此问题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>
    );
};

这是引起错误的主线,当我尝试从'react-dom / server'导入renderToString方法时,会发生这种情况:

enter image description here

我已经尝试了其他操作,例如删除target:'node',但是没有一个解决方案起作用。可能是什么原因造成的?在过去的三天里,我一直在坚持这一点,不确定是什么。

我的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);

0 个答案:

没有答案