我使用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
)命令一样。 我该怎么做呢?
不久前,由于同样的原因,我对创建web应用程序监视选项的create-react-app存储库进行了分叉 。 它可能会帮助您。
为了添加更多信息,我真的投入了一些时间来研究如何使webpackdevserver生成“ bundle.js”,并发现这是不可能的,因为它将捆绑包加载到了内存中但没有持久化,因此文件是从未创造。 可用的唯一方法是webpack watch选项,但是,我不明白为什么create-react-app团队无法将其添加到仓库中,这是真正需要的功能,并且比我的解决方案还多的叉子。 因此,您有三个选择: