使用CI / CD在Heroku上部署Anguilarjs应用程序

时间:2017-04-06 13:09:07

标签: angularjs express heroku codeship

我根据一个典型的目录结构制作了一个小的Angularjs,该结构将源存储在al" src"目录并部署到" dist"目录。因此,我没有像在github页面中那样在本地服务器上部署代码的问题。 我已经构建了一个CodeShip CI / CD实例,它运行测试很好并且部署但是它会在那里崩溃。

代码正在部署到heroku,但我找不到让它在heroku中工作的方法。

我已经制作了一个Procfile:

web: node node_modules/gulp/bin/gulp build
web: node server.js

还有一个基本的servers.js

var express = require('express');
var app = express();

// I found somewhere that process.env.PORT lets the port be set by Heroku,
// but its not working
var port = process.env.PORT || 8080;

app.use(express.static(path.join(__dirname + '/dist')));
//app.use(express.static(process.env.PWD + '/dist')); //already tried this one 

// home page route
app.get('/', function(req, res) {
    res.render('index');
});

app.listen(port, function() {
    console.log('App is running fine on port:' + port +' ++');
});

当然我已经将express添加到我的节点包中。它实际上在我的localhost(Linux和Windows)

中工作正常

在Heroku日志上,没有太多信息,我怀疑我不能让快递找到正确的路径,所以它崩溃了。

2017-03-29T13:58:27.459049+00:00 app[web.1]:     at Module.runMain (module.js:605:10)
2017-03-29T13:58:27.554976+00:00 heroku[web.1]: State changed from starting to crashed

的Heroku On Heroku Log

CODESHIP(使用节点6.10.2) CodeShip Log

1 个答案:

答案 0 :(得分:1)

要运行构建步骤,您可以使用npm scripts执行此操作:

"scripts": {
  "start": "node server.js",
  "test": "mocha",
  "postinstall": "node node_modules/gulp/bin/gulp build"
}

然后你的Procfile就像这样简单 -

web: npm start

就错误而言,很难说,因为我没有看到完整的错误。确保您的server.js文件位于正确的位置,并且您有一个package.json文件,其中列出了所有依赖项。