【发布时间】:2018-01-21 05:21:24
【问题描述】:
我目前正在使用 React 构建一个应用程序,它与单独后端的 API 通信。在我的server.js 中,我在一个端口上快速监听WebpackDevServer,另一个端口用于服务简单的index.html。事情是这样的:
new WebpackDevServer(webpack(config), {
publicPath: config.output.publicPath,
watchOptions: {
aggregateTimeout: 300,
poll: 1000
}
})
.listen(3001, '0.0.0.0', function (err, result) {
if (err) {
console.log(err);
}
console.log('Running at http://0.0.0.0:3001');
});
app.use(express.static(__dirname + '/dist'));
app.get('*', function(req, res) {
res.sendFile(path.join(__dirname, 'index.html'))
})
app.listen(4000, function() {
console.log('Running at http://0.0.0.4000')
})
- 如何根据我的环境有条件地选择运行哪个服务器?我不希望两个端口都运行我的前端实例。
- 修改
package.json中的scripts部分以适应更改的好方法是什么?
【问题讨论】:
-
监听 webpack 实例的目的是什么? 1. Webpack 开发服务器仅用于开发目的,因此您不应该绑定您的 api 来监听 WebpackDevServer,因为您可能会在某个时候部署该 API。 2. React 是用 webpack 预构建的,所以我会遵从 React 处理 index.html 的方法,因为你只是想重新提供它。
-
好吧,我没有将我的 API 与任何东西“绑定”,它是另一个端口上的 Rails 后端,独立于 express。此外,从技术上讲,React 并没有预构建 webpack。
-
抱歉,React 是通过 web 包“配置”的。只是想了解为什么您不只是将默认配置与 react 一起使用。也许我误解了你的问题。