【发布时间】:2021-06-24 02:33:08
【问题描述】:
我正在尝试通过 Heroku 进行部署和应用,并在我的 package.json 文件中使用 heroku-postbuild 命令来执行此操作。
这是我的 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)
问题似乎是它试图在app 文件夹中找到我的server.js 文件;但是,不存在这样的文件夹 - server.js 文件位于 backend 文件夹的根目录中。
任何人都知道为什么路径前加上/app?
【问题讨论】:
标签: node.js heroku heroku-cli