Tag: heroku

AngularJS持续部署工具

我一直在尝试使用Codeship和Heroku来连续部署我正在编写的AngularJS应用程序。 该应用程序使用Yeoman创build,并使用凉亭和咕噜声。 起初,我认为这看起来像一个非常好的设置Codeship是免费使用,我很快就能够configuration这个来build立我的AngularJS项目,并提供了在构build后添加部署步骤的能力。 甚至有很多PaaS供应商可供select(Heroku,S3,Google App Engine等)。 但是,我似乎已经成为一个让Heroku上运行的应用程序卡住了。 问题出在这样的事实,即所有的文档都build议我从.gitignore删除/distpath,以便将这个目录发布到Heroku后期构build中。 这主要是从本地机器上谈到向Heroku发布的文档,但是我认为这是所有Codeship正在引擎盖下进行的。 我不想这样做,因为我不相信我应该检查生成输出到源代码pipe理。 /dist文件夹被添加到.gitignore有一个很好的理由。 而且,这种有点让人失望的CI服务器,不如从我的机器上推出最新的版本。 经过一些更多的挖掘后,我发现我可以添加一个postinstall步骤到我的packages.json文件中,例如bower install && grunt build ,它将重新运行Heroku上的构build,从而重新填充所有的bower依赖项(他们想要的其他东西检查源代码pipe理!)和dist目录。 给了这个尝试后,显然我需要在packages.json添加bower和grunt作为依赖关系,这意味着将它们从devDependencies移动到它们应该属于的地方! 所以我现在好像被卡住了 我想要做的就是发布我的构build文物( /dist )依赖项( /bower_components )和将运行该站点的server.js文件。 有没有人知道如何用Heroku和Codeship实现这一点? 或者有人使用不同的工具有任何成功。 我正在寻找一些免费的,我愿意接受,它不会生产稳定(不会扩展到多个服务器等),但现在这是好的,因为我想要做的就是不断地部署应用程序内部testing,并能够与我的团队的非技术成员分享输出,所以我们可以讨论我们想优先考虑的function等。 任何build议将不胜感激。 谢谢

无法在节点服务器中打开SSL密钥文件 – ENOENT

我试图部署一个项目,我第一次使用grunt buildcontrolinheritance到heroku。 虽然我能够构build和部署,但在运行时出现错误: ENOENT:没有这样的文件或目录,打开'ssl / keys / server.key' 检查dist目录,确实没有ssl目录。 因此,我已经把它添加到/ dist无济于事。 考虑到/ dist / server /中的app.js可能被限制在那个目录下,我把ssl目录复制到了那里 – 又是同样的问题。 在/dist/server/app.js里面: var options = { key: fs.readFileSync('ssl/keys/server.key'), cert: fs.readFileSync('ssl/keys/server.crt') }; // Setup server var app = express(); var server = require('https').createServer(options, app); 如果不在服务器文件夹内,它将在哪里查找ssl目录?

你可以使用节点检查器来debugging与领class运行的node.js应用程序

我有一个node.js应用程序,我可以使用node-inspector运行进行debugging: node –debug app.js 但是我想用工头来启动我的应用程序,所以它会在.env文件中加载环境variables。 像这样: foreman start 有没有办法与工头运行应用程序,也使用节点检查器? 我试过了: foreman start –debug 但没有任何运气。 谢谢。

Heroku + node.js:我有一个使用多个端口的服务器。 我怎样才能让Heroku分配它们?

呃我会尽量做得更清楚.. 在我用node.js编写的应用程序服务器中,我有多个端口的内部代理: 在我的8080端口,我有我的restapi 。 在我的3000端口我有我的推服务器和聊天 。 我使用npm软件包的子域路由器进行内部路由到端口,公开了代理端口的“前端”中的子域。 代码演示: ( <some-app>显然不是<some-app>的真名) require('subdomain-router') ({ host: '<some-app>.herokuapp.com', subdomains: { '': 8080, // <some-app>.herokuapp.com <=> ::8080 –WORKS– 'api': 8080, // api.<some-app>.herokuapp.com <=> ::8080 'chat': 3000, // chat.<some-app>.herokuapp.com <=> ::3000 'push': 3000 // push.<some-app>.herokuapp.com <=> ::3000 } }).listen(process.env.PORT || 5000); 尽pipe我无法通过<some-app>.herokuapp.com:8080访问它,但只能通过<some-app>.herokuapp.com访问它,并让内部的subdomain-router模块达到这个效果。 另外,我无法访问子域名。 当试图访问api.<some-app>.herokuapp.com我从heroku得到No such app错误页面。 TL;访问<some-app>.herokuapp.com DR (redirect到我的API的/v1path),但无法访问<some-app>.herokuapp.com:8080 , <some-app>.herokuapp.com:3000或chat.<some-app>.herokuapp.com […]

推拒绝,无法编译Node.js应用程序heroku

当我试图推我的nodejs应用程序到heroku与git push heroku master ,我得到这个: Counting objects: 975, done. Delta compression using up to 2 threads. Compressing objects: 100% (862/862), done. Writing objects: 100% (975/975), 3.74 MiB | 80.00 KiB/s, done. Total 975 (delta 70), reused 0 (delta 0) —–> Node.js app detected —–> Resolving engine versions Using Node.js version: 0.10.15 Using npm version: 1.3.3 […]

如何指定pm2的端口号

我正在尝试使用pm2来pipe理一个node.js集群 pm2 start . -i 3 我目前在heroku上运行应用程序,并使用上面的命令使用Procfile,但我不知道如何configurationpm2使用现有的PORT env var。 像pm2 start . -p $PORT pm2 start . -p $PORT 我错过了什么?

如何在Heroku上启用ES2017function来运行Node.js应用程序?

我是新来的节点,并创build了一个应用程序,它有一些async / await语法就像这样: const express = require('express'); const app = express(); const someLibrary = require('someLibrary'); function asyncWrap(fn) { return (req, res, next) => { fn(req, res, next).catch(next); }; }; app.post('/getBlock', asyncWrap(async (req,res,next) => { let block = await someLibrary.getBlock(req.body.id); [some more code] })); app.listen(process.env.PORT || 8000); 它在我的机器上工作正常,但是当我部署到Heroku我得到一个错误,因为语法不支持: 2017-03-23T10:11:13.953797+00:00 app[web.1]: app.post('/getBlock', asyncWrap(async (req,res,next) => { 2017-03-23T10:11:13.953799+00:00 […]

package.json启动脚本,babel-node:在heroku部署中找不到

当我运行heroku local或当我只是做本地npm start ,我的应用程序生成并运行良好。 但是,当我部署到Heroku,该应用程序崩溃,说无法findbabel节点。 这里是日志输出: 2016-04-21T22:20:44.320025+00:00 heroku[api]: Deploy 5d9a9da by eagsalazar@gmail.com 2016-04-21T22:20:44.320084+00:00 heroku[api]: Release v9 created by eagsalazar@gmail.com 2016-04-21T22:20:44.542062+00:00 heroku[slug-compiler]: Slug compilation started 2016-04-21T22:20:44.542069+00:00 heroku[slug-compiler]: Slug compilation finished 2016-04-21T22:20:44.501025+00:00 heroku[web.1]: State changed from crashed to starting 2016-04-21T22:20:46.278065+00:00 heroku[web.1]: Starting process with command `npm start` 2016-04-21T22:20:50.467407+00:00 app[web.1]: 2016-04-21T22:20:50.467434+00:00 app[web.1]: > qc-server@1.0.0 start /app 2016-04-21T22:20:50.467435+00:00 app[web.1]: […]

为什么我的heroku node.js应用程序给出=错误代码= H10 desc =“应用程序崩溃”方法= GETpath=“/”?

我正在尝试在Heroku上运行我的简单节点应用程序。 这是目录结构 ├── app.js ├── assets ├── blog.html ├── index.html ├── node_modules └── package.json 这是我的app.js let express = require('express'), path = require('path'); var app = express(); let server = require('http').Server(app); app.use(express.static(path.join(__dirname))); app.get('/', function(req, res, next){ res.sendStatus(200); }); app.get('/blog.html', function(req, res,next){ res.sendFile(path.join(__dirname+"/blog.html")); }); app.post('/contact', function(req, res, next){ }); server.listen('8000', function() { console.log("App is running on port […]

有条件地运行npm脚本

我有2个主要的构buildconfiguration – dev和prod。 我将更新推送到运行npm install –production的heroku服务器来安装我的应用程序。 在package.json中我有以下部分: "scripts": { "postinstall": "make install" } 它运行一个make文件,负责使代码丑化和其他一些小事情。 但是,我不需要在开发模式下运行这个makefile。 有没有办法用npm有条件地运行脚本? 谢谢!