【发布时间】:2019-04-07 14:11:59
【问题描述】:
到目前为止,我一直在为我的项目使用 create-react-app,express-server 和 react 客户端都在各自的文件夹中。 p>
但是,我现在试图避免 create-react-app 以便真正了解一切在后台是如何工作的。我正在阅读一篇 Hacker Noon 文章,该文章解释了如何使用 typescript 和 webpack 设置响应。在本文中,他们还拥有位于客户端根目录的 express 服务器,它自己编译所有内容:
const path = require('path'),
express = require('express'),
webpack = require('webpack'),
webpackConfig = require('./webpack.config.js'),
app = express(),
port = process.env.PORT || 3000;
app.listen(port, () => { console.log(`App is listening on port ${port}`) });
app.get('/', (req, res) => {
res.sendFile(path.resolve(__dirname, 'dist', 'index.html'));
});
let compiler = webpack(webpackConfig);
app.use(require('webpack-dev-middleware')(compiler, {
noInfo: true, publicPath: webpackConfig.output.publicPath, stats: { colors: true }
}));
app.use(require('webpack-hot-middleware')(compiler));
app.use(express.static(path.resolve(__dirname, 'dist')));
最后,启动命令是这样的:
"start": "npm run build && node server.js"
所以我假设客户端和服务器在同一个端口上启动。
你为什么要这么做?有什么优缺点吗?
【问题讨论】:
-
谢谢,但我知道。 Express 是一个 nodejs 框架。为什么这么说?
-
你呢?您在问题中包含了哪些 [nodejs] 特定代码?
-
知道 express 是一个节点框架,将 express 称为 nodejs 是否错误?
-
[nodejs] api 的哪一部分与您的问题相关? (我在第一条消息中链接 API 并非偶然)忘记好坏。它根本不相关。你仍然包括标签。但是我是在将问题过滤到 [nodejs] 之后来到这里的。
标签: node.js reactjs express webpack