为什么 heroku post-build 将 `/app` 附加到我的启动脚本文件中?

问题描述

我正在尝试通过 Heroku 进行部署和应用,并在我的 heroku-postbuild 文件中使用 package.json 命令来执行此操作。

这是我的 package.json 文件

{
  "name": "article-ranker-v2","version": "1.0.0","description": "","main": "index.js","dependencies": {},"devDependencies": {
    "concurrently": "^6.0.0"
  },"scripts": {
    "start": "node server.js --prefix backend","heroku-postbuild": "set NPM_CONfig_PRODUCTION=false&&npm install --prefix backend&&npm install --prefix frontend&&npm run build --prefix frontend","test": "echo \"Error: no test specified\" && exit 1","server:dev": "npm run start:dev --prefix backend","client:dev": "npm run start:dev --prefix frontend","server:prod": "npm run start:prod --prefix backend","client:prod": "npm run start:prod --prefix frontend","server:debug": "npm run debug --prefix backend","dev": "concurrently \"npm run server:dev\" \"npm run client:dev\"","debug": "concurrently \"npm run server:debug\" \"npm run client:dev\"","prod": "concurrently \"npm run server:prod\" \"npm run client:prod\""
  },"author": "","license": "ISC",}

奇怪的是,当我运行 heroku-logs 时出现以下错误

2021-03-27T11:30:12.000000+00:00 app[api]: Build succeeded
2021-03-27T11:30:12.045477+00:00 heroku[web.1]: State changed from crashed to starting
2021-03-27T11:30:22.109846+00:00 heroku[web.1]: Starting process with command `npm start`
2021-03-27T11:30:24.585408+00:00 app[web.1]:
2021-03-27T11:30:24.585423+00:00 app[web.1]: > article-ranker-v2@1.0.0 start /app
2021-03-27T11:30:24.585424+00:00 app[web.1]: > node server.js --prefix backend
2021-03-27T11:30:24.585424+00:00 app[web.1]:
2021-03-27T11:30:24.639473+00:00 app[web.1]: internal/modules/cjs/loader.js:883
2021-03-27T11:30:24.639474+00:00 app[web.1]: throw err;
2021-03-27T11:30:24.639475+00:00 app[web.1]: ^
2021-03-27T11:30:24.639475+00:00 app[web.1]:
2021-03-27T11:30:24.639476+00:00 app[web.1]: Error: Cannot find module '/app/server.js'
2021-03-27T11:30:24.639477+00:00 app[web.1]: at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)

问题似乎是它试图在 server.js 文件夹中找到我的 app 文件;但是,不存在这样的文件夹 - server.js 文件位于 backend 文件夹的根目录中。

有人知道为什么路径前面有 /app 吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)