问题描述
我不确定我是否正确说了这个标题或如何措词。通常,当我运行React应用程序时,我会在终端中运行npm start
,并且可以在浏览器中看到我的更改。但是对于这个项目,npm start
本身会带来错误,我必须在开始之前运行npm run build
,但这并不能为我带来浏览器的实时更改。我必须继续杀死服务器,然后重新启动才能在浏览器中看到每个单独的更改。
我忘了安装东西吗?我是React的新手,我的搜索都没有取得令人满意的结果。
如果有帮助,这里有一些代码:
// bin/www
var app = require('../app');
var debug = require('debug')('mean-app:server');
var http = require('http');
var port = normalizePort(process.env.PORT || '3000');
app.set('port',port);
var server = http.createServer(app);
server.listen(port);
server.on('error',onError);
server.on('listening',onListening);
function normalizePort(val) {
var port = parseInt(val,10);
if (isNaN(port)) {
// named pipe
return val;
}
if (port >= 0) {
// port number
return port;
}
return false;
}
function onError(error) {
if (error.syscall !== 'listen') {
throw error;
}
var bind = typeof port === 'string'
? 'Pipe ' + port
: 'Port ' + port;
switch (error.code) {
case 'EACCES':
console.error(bind + ' requires elevated privileges');
process.exit(1);
break;
case 'EADDRINUSE':
console.error(bind + ' is already in use');
process.exit(1);
break;
default:
throw error;
}
}
function onListening() {
var addr = server.address();
var bind = typeof addr === 'string'
? 'pipe ' + addr
: 'port ' + addr.port;
debug('Listening on ' + bind);
.env:
// .env
PORT=5555
package.json:
"scripts": {
"start": "node ./bin/www","build": "react-scripts build","dev": "DEBUG=project-management-server:* nodemon ./bin/www","test": "react-scripts test --env=jsdom","eject": "react-scripts eject"
},
解决方法
将您的packages.json更改为此
"scripts": {
"start": "react-scripts start","build": "react-scripts build","dev": "DEBUG=project-management-server:* nodemon ./bin/www","test": "react-scripts test --env=jsdom","eject": "react-scripts eject"
},
运行“ npm start”应该立即重新加载