Heroku TypeScript nodeJs由于默认路径/app而失败



我撞到头了,因为我在这里肯定做错了什么。也许有人能看到我犯的错误。我有一个带web的procfile:node-dist/index.js,但heroku总是在/app/dist/index.js上找不到(因为它不在那里(。非常感谢

2020-11-18T21:46:59.081122+00:00 app[api]: Deploy 3afbbcf4 by user email@gmail.com
2020-11-18T21:46:59.081122+00:00 app[api]: Release v25 created by user email@gmail.com
2020-11-18T21:47:00.477909+00:00 heroku[web.1]: State changed from crashed to starting
2020-11-18T21:47:03.000000+00:00 app[api]: Build succeeded
2020-11-18T21:47:04.530880+00:00 heroku[web.1]: Starting process with command `node dist/index.js`
2020-11-18T21:47:05.990726+00:00 app[web.1]: node:internal/modules/cjs/loader:922
2020-11-18T21:47:05.990736+00:00 app[web.1]: throw err;
2020-11-18T21:47:05.990736+00:00 app[web.1]: ^
2020-11-18T21:47:05.990736+00:00 app[web.1]:
2020-11-18T21:47:05.990737+00:00 app[web.1]: Error: Cannot find module '/app/dist/index.js'
{
"name": "adsfasdfsadf",
"version": "0.0.1",
"description": ".",
"type": "commonjs",
"devDependencies": {
"@types/bcryptjs": "^2.4.2",
"@types/connect-redis": "^0.0.15",
"@types/cors": "^2.8.8",
"@types/express-session": "^1.17.0",
"@types/ioredis": "^4.17.8",
"@types/node": "^8.0.29",
"@types/session-file-store": "^1.2.1",
"@types/typescript": "^2.0.0",
"ts-node": "3.3.0",
"ts-node-dev": "^1.0.0"
},
"dependencies": {
"apollo-server-express": "^2.19.0",
"bcryptjs": "^2.4.3",
"class-validator": "^0.12.2",
"connect-redis": "^5.0.0",
"cors": "^2.8.5",
"dotenv": "^8.2.0",
"express-session": "^1.17.1",
"ioredis": "^4.19.2",
"mysql": "^2.14.1",
"reflect-metadata": "^0.1.10",
"session-file-store": "^1.5.0",
"type-graphql": "^1.0.0",
"typeorm": "0.2.27",
"typescript": "^4.0.5"
},
"scripts": {
"start": "node dist/index.js",
"postinstall": "tsc",
"watch-node": "nodemon dist/index.js",
"watch-ts": "tsc -w",
"deploy": "git add . && git commit -m Heroku && git push heroku master"
},
"engines": {
"node": "15.2.0",
"npm": "7.0.12"
}
}

你尝试过路径吗"节点索引.js";而不是";node dist/index.js";?

或者你可以试着运行dyno的一次性副本,让它列出目录内容。这将允许你检查你的文件是否在你期望的位置。以下是更多信息。

heroku运行ls-al

检查index.js的路径。你可能会发现你的index.js文件不是你期望的位置。也许它没有被检查到git中?


UPD:也许你会在这篇文章中找到解决方案;Express with server side building";部件:

  1. 运行npm install express --save
  2. 在根文件夹server.js中创建一个新文件
  3. 在根目录中创建另一个名为Procfile的文件
  4. 打开package.json并将heroku prebuild和heroku postbuild添加到脚本中
  5. 仍然在package.json中添加";节点";发动机
  6. 运行git rm package-lock.json
  7. 然后运行git rm yarn.lock
  8. 最后,heroku config:set NPM_CONFIG_PRODUCTION=false。这个步骤是必需的,所以Heroku将下载dev依赖项来执行构建

相关内容

最新更新