部署到Heroku的Angular应用程序无法启动

时间:2017-07-17 01:38:53

标签: node.js git angular heroku deployment

我正在尝试使用Git将Angular App部署到Heroku。使用Angular CLI并在localhost查看时,该应用程序功能齐全。我有一个小的Node.js服务器来提供静态文件。

我的Heroku部署被标记为已构建且没有错误,但在尝试连接时,它失败了。

Heroku记录:

heroku[web.1]: Starting process with command `node ../server.js`
[web.1]: module.js:471
app[web.1]:     throw err;
app[web.1]:     ^
app[web.1]:
app[web.1]: Error: Cannot find module '/server.js'
app[web.1]:     at Function.Module._resolveFilename (module.js:469:15)
app[web.1]:     at Function.Module._load (module.js:417:25)
app[web.1]:     at Module.runMain (module.js:604:10)
app[web.1]:     at run (bootstrap_node.js:389:7)
app[web.1]:     at startup (bootstrap_node.js:149:9)
app[web.1]:     at bootstrap_node.js:504:3
heroku[web.1]: State changed from starting to crashed

我发现它找不到server.js,但它肯定在我的根目录中并使用git跟踪/推送:

>git ls-files

Procfile
dist/...
...
package.json
protractor.conf.js
server.js
src/app/app.component.css
src/app/app.component.html
src/app/app.component.ts
src/app/app.module.ts
src/app/tenant.ts
...

Procfile

web: node ../server.js

server.js

const express = require('express');
const app = express();
app.use(express.static(__dirname + '/dist'));
app.listen(process.env.PORT || 8080);

package.json ,我将private设置为false

{
  "name": "utilites",
  "version": "0.0.0",
  "license": "MIT",
  "scripts": {
    "ng": "ng",
    "start": "node ../server.js",
    "build": "ng build",
    ...
  },
  "private": false,
  "dependencies": {
    "@angular/animations": "^4.0.0",
    "@angular/common": "^4.0.0",
    "@angular/compiler": "^4.0.0",
    "@angular/cli": "1.1.2",
    "@angular/core": "^4.0.0",
    "@angular/forms": "^4.0.0",
    "@angular/http": "^4.0.0",
    ...
  },
...
}

/ dist是使用ng build --aot -prod生成的。

有什么想法?如果我忽略了提供调试此部署所需的任何内容,请告诉我。谢谢你的时间。

解决方案

问题很简单:'.. / server.js'应该只是package.json&中的server.js。 proc文件。

1 个答案:

答案 0 :(得分:1)

heroku[web.1]: Starting process with command `node ../server.js`

表示如果您在/your/path/to/server.js中运行该流程,则会尝试运行/your/path/server.js,但该流程不存在。

直截了当地说道!