Сервер React setup express возвращает код выхода 1 при запуске сценария запуска yarn

#reactjs #express #heroku #yarnpkg #package.json

#reactjs #экспресс #heroku #yarnpkg #package.json

Вопрос:

Я хочу развернуть свой веб-сайт react на Heroku, и я следую этому руководству: https://medium.com/jeremy-gottfrieds-tech-blog/tutorial-how-to-deploy-a-production-react-app-to-heroku-c4831dfcfa08 .

Я создал экспресс-сервер и изменил свой package.json, как показано здесь, но когда я запускаю yarn start и перехожу к localhost: 8080. Я могу видеть свою страницу, но в терминале я вижу это

 C:UsersivanrDocumentsGitHubbees>yarn start
yarn run v1.22.4
$ node server.js
events.js:200
      throw er; // Unhandled 'error' event
      ^

Error: ENOENT: no such file or directory, open 'C:UsersivanrDocumentsGitHubbeesbuildfavicon.ico'Emitted 'error' event on ReadStream instance at:
    at internal/fs/streams.js:120:12
    at FSReqCallback.oncomplete (fs.js:146:23) {
  errno: -4058,
  code: 'ENOENT',
  syscall: 'open',
  path: 'C:\Users\ivanr\Documents\GitHub\bees\build\favicon.ico'
}
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

  

server.js

 const express = require('express');
const favicon = require('express-favicon');
const path = require('path');
const port = process.env.PORT || 8080;
const app = express();
app.use(favicon(__dirname   '/build/favicon.ico'));
// the __dirname is the current directory from where the script is running
app.use(express.static(__dirname));
app.use(express.static(path.join(__dirname, 'build')));
app.get('/ping', function (req, res) {
 return res.send('pong');
});
app.get('/*', function (req, res) {
  res.sendFile(path.join(__dirname, 'build', 'index.html'));
});
app.listen(port);
  

package.json

 {
  "name": "business-scheduler",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@testing-library/jest-dom": "^4.2.4",
    "@testing-library/react": "^9.3.2",
    "@testing-library/user-event": "^7.1.2",
    "apollo-boost": "^0.4.7",
    "apollo-link-context": "^1.0.20",
    "apollo-link-ws": "^1.0.20",
    "bootstrap": "^4.5.0",
    "concurrently": "^5.2.0",
    "express": "^4.17.1",
    "express-favicon": "^2.0.1",
    "file-loader": "^6.0.0",
    "graphql": "^15.0.0",
    "moment": "^2.26.0",
    "moment-range": "^4.0.2",
    "node-sass": "^4.14.0",
    "path": "^0.12.7",
    "react": "^16.13.1",
    "react-apollo": "^3.1.5",
    "react-bootstrap": "^1.0.1",
    "react-calendar": "^3.0.1",
    "react-copy-to-clipboard": "^5.0.2",
    "react-datepicker": "^3.1.3",
    "react-dom": "^16.13.1",
    "react-gravatar": "^2.6.3",
    "react-router": "^5.1.2",
    "react-router-dom": "^5.1.2",
    "react-scripts": "3.4.1",
    "react-timestamp": "^5.1.0",
    "react-week-calendar": "^0.1.3",
    "subscriptions-transport-ws": "^0.9.16"
  },
  "scripts": {
    "start": "node server.js",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  }
}

  

Я сделал то же самое, что и в руководстве, но это не работает. У кого-нибудь есть идея относительно того, почему это не работает, или есть лучший способ развертывания веб-сайта React в Heroku.

Комментарии:

1. Вы видите favicon.ico в build папке?

2. Да, это был ответ!