【问题标题】:Heroku error with React and Express: cannot find app.jsReact 和 Express 的 Heroku 错误:找不到 app.js
【发布时间】:2020-02-28 02:48:16
【问题描述】:

我已经构建了几个应用程序,并决定在 Heroku 上托管一个。我已将 Express 服务器配置为运行 Build 文件夹中的文件: 服务器/server.js:

const path = require('path');
const express = require('express');
const app = express();
const publicPath = path.join(__dirname, '..', 'build');
const port = process.env.PORT || 3000;
app.use(express.static(publicPath));
app.get('*', (req, res) => {
    res.sendFile(path.join(publicPath, 'index.html'));
});
app.listen(port, () => {
    console.log('Server is up!');
});

当我尝试在本地运行服务器时,一切正常。我已经在 GitHub 上托管了整个项目(通过文件上传,因为我需要的端口被阻止)并设置 Heroku 从那里获取项目。我已将 Procfile 设置为:

web: node server/server.js

我希望 Heroku 能够运行服务器并且服务器从项目的 build 文件夹中获取文件。但是 Heroku CLI 显示以下错误:

2019-11-01T20:14:22.015987+00:00 heroku[web.1]: Starting process with command `node app.js`
2019-11-01T20:14:23.648922+00:00 heroku[web.1]: Process exited with status 1
2019-11-01T20:14:23.687276+00:00 heroku[web.1]: State changed from starting to crashed
2019-11-01T20:14:23.691982+00:00 heroku[web.1]: State changed from crashed to starting
2019-11-01T20:14:23.607228+00:00 app[web.1]: internal/modules/cjs/loader.js:638
2019-11-01T20:14:23.607245+00:00 app[web.1]: throw err;
2019-11-01T20:14:23.607246+00:00 app[web.1]: ^
2019-11-01T20:14:23.607247+00:00 app[web.1]:
2019-11-01T20:14:23.607248+00:00 app[web.1]: Error: Cannot find module '/app/app.js'
2019-11-01T20:14:23.607253+00:00 app[web.1]: at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
2019-11-01T20:14:23.607254+00:00 app[web.1]: at Function.Module._load (internal/modules/cjs/loader.js:562:25)
2019-11-01T20:14:23.607255+00:00 app[web.1]: at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
2019-11-01T20:14:23.607259+00:00 app[web.1]: at startup (internal/bootstrap/node.js:283:19)
2019-11-01T20:14:23.60726+00:00 app[web.1]: at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)

package.json:

 "name": "ai",
  "version": "0.9.0",
  "private": true,
  "engines": {
    "npm": "^6.9.0",
    "node": "^v10.15.3"
  },
  "dependencies": {
    "bootstrap": "^4.3.1",
    "emailjs-com": "^2.4.0",
    "express": "^4.17.1",
    "i18next": "^17.0.11",
    "i18next-browser-languagedetector": "^3.0.3",
    "react": "^16.9.0",
    "react-bootstrap": "^1.0.0-beta.11",
    "react-dom": "^16.9.0",
    "react-i18next": "^10.12.2",
    "react-image-gallery": "^0.9.1",
    "react-scripts": "3.1.1"
  },
  "scripts": {
    "start": "node server/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"
    ]
  }
}

构建正常,但找不到 app.js。错误日志中的路径没有给我太多意义 - 它不应该在构建文件夹中寻找不同的(缩小的)文件吗?除此之外,我的项目中没有 app/ 文件夹。我错过了什么?

【问题讨论】:

    标签: reactjs express heroku create-react-app


    【解决方案1】:

    您的项目可能会默认查找 app.js 文件。如果 server.js 是您的主要项目文件,您可能需要找到指定 app/app.js 的位置并将其更改为 server/server.js

    【讨论】:

      猜你喜欢
      • 2018-05-11
      • 2021-03-17
      • 2015-08-31
      • 1970-01-01
      • 1970-01-01
      • 2017-01-17
      • 2020-07-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多