ExpressJS + Webpack + react-router v4

我正试图build立自己的模板来创build反应应用程序,以便知道幕后发生了什么。

我被困在使用Webpack / Express / react-router v4的服务器渲染中。 只是不知道如何解决它。

我的express.js文件如下所示:

 const express = require('express'); const morgan = require('morgan'); const path = require('path'); const React = require('react'); const ReactDOMServer = require('react-dom/server'); const StaticRouter = require('react-router').StaticRouter; const App = require('./src/app'); const app = express(); // Views app.set('view engine', 'ejs'); app.set('views', path.resolve(__dirname, 'src', 'templates')) // Middlewares app.use(morgan(':method :url :status :res[content-length] - :response-time ms')); app.use(express.static(path.resolve(__dirname, 'dist'))); // Paths app.get('*', (req, res) => { const context = {} const html = ReactDOMServer.renderToString( <StaticRouter location={req.url} context={context} > <App/> </StaticRouter> ) res.render('index', {reactOutput: html}); // Then in my index.ejs put a <%- reactOutput %> }); const port = 8000; app.listen(port, () => { console.log('Listening on port', port); }) 

接下来的步骤是什么? 我在想什么:1.在webpack.config.jsexpress.js定义新条目2.使用node express.bundle.js由Webpack创build的node express.bundle.js

但是,只要我尝试运行webpack -p我得到的错误:

 ERROR in ./node_modules/express/lib/request.js Module not found: Error: Can't resolve 'net' in '/Users/NYC/Desktop/JavaScript/Boilerplate/client/node_modules/express/lib' ERROR in ./node_modules/express/lib/view.js Module not found: Error: Can't resolve 'fs' in '/Users/NYC/Desktop/JavaScript/Boilerplate/client/node_modules/express/lib' ERROR in ./node_modules/send/index.js Module not found: Error: Can't resolve 'fs' in '/Users/NYC/Desktop/JavaScript/Boilerplate/client/node_modules/send' ERROR in ./node_modules/etag/index.js Module not found: Error: Can't resolve 'fs' in '/Users/NYC/Desktop/JavaScript/Boilerplate/client/node_modules/etag' ERROR in ./node_modules/destroy/index.js Module not found: Error: Can't resolve 'fs' in '/Users/NYC/Desktop/JavaScript/Boilerplate/client/node_modules/destroy' ERROR in ./node_modules/mime/mime.js Module not found: Error: Can't resolve 'fs' in '/Users/NYC/Desktop/JavaScript/Boilerplate/client/node_modules/mime' 

你应该添加target: 'node'到你的webpackconfiguration文件。

欲了解更多信息,请访问https://webpack.js.org/concepts/targets/