如何从create-react-app设置开发和API服务器?

问题描述 投票:0回答:1

我使用create-react-app启动了一个新create-react-app ,并从中退出了。 我做了一个小型快递服务器,如下所示:

const express = require('express');
const app = express();

if(process.env.NODE_ENV === 'production') {
  app.use(express.static('build'));
}

const port = process.env.PORT || 3000;

app.listen(port, () => {
  console.log(`Server started at: http://localhost:${port}/`);
});

package.json我添加了一行"proxy": http://localhost:3000",以及切换命令:

"scripts": {
    "run": "npm-run-all -p watch-css start-js",
    "start": "node server.js",
  },

run曾经是start

但是现在当然当我运行npm start并转到localhost:3000时,我得到Cannot GET / 。 我需要该服务器来接收和返回我将从我的应用程序进行的本地API调用,但是我还希望它运行热重载的dev服务器,就像旧的npm start (现在为npm run )命令一样。 我该怎么做呢?

node.js express webpack webpack-dev-server
1个回答
0
投票

不久前,由于同样的原因,我对创建web应用程序监视选项的create-react-app存储库进行了分叉 。 它可能会帮助您。

为了添加更多信息,我真的投入了一些时间来研究如何使webpackdevserver生成“ bundle.js”,并发现这是不可能的,因为它将捆绑包加载到了内存中但没有持久化,因此文件是从未创造。 可用的唯一方法是webpack watch选项,但是,我不明白为什么create-react-app团队无法将其添加到仓库中,这是真正需要的功能,并且比我的解决方案还多的叉子。 因此,您有三个选择:

  1. 使用package.json中的代理服务器(如果可行)
  2. 自己制作叉子并添加手表选项,或使用现有的
  3. 不要使用create-react-app
© www.soinside.com 2019 - 2024. All rights reserved.