Articles of heroku

Socket.io和Heroku一起工作吗?

我试图find这个问题的答案,我能find的所有东西都是旧的“不,不”,或者“将来它会”。 我尝试了socket.io-redis没有用。 在Heroku上,一个测功机将创build工作套接字,不止如此,你将从Socket.io中得到以下错误,这意味着没有缩放。 {“code”:1,“message”:“Session ID unknown”} 在我看来,WebSocket“支持”Heroku声称对开发者来说实在是一个残酷的玩笑。 编辑: Heroku支持websockets,但它不会用与Redis的socket.io群集。 所以我只运行一个专用于套接字的实例。 当我想用Heroku使用套接字。

有这个错误“UNMET PEER DEPENDENCY grunt@1.0.1”

我通过“npm i”安装grunt时遇到问题。 我也尝试过0.4.5,但同样的错误。 有什么想法发生什么事情? 为了帮助,这些是我的依赖: "dependencies": { "arrify": "1.0.1", "as-jqplot": "1.0.8", "babel-runtime": "6.9.2", "bootstrap": "3.3.6", "bootstrap-slider": "9.1.1", "chart.js": "1.0.2", "chunk": "0.0.2", "clone": "1.0.2", "co": "4.6.0", "co-body": "4.2.0", "co-pg": "2.0.0", "expect": "1.20.2", "font-awesome": "4.6.3", "github": "2.2.0", "grunt": "1.0.1", "grunt-babel": "6.0.0", "grunt-bump": "0.8.0", "grunt-cli": "1.2.0", "grunt-contrib-concat": "1.0.1", "grunt-contrib-copy": "1.0.0", "grunt-contrib-imagemin": "1.0.1", "grunt-contrib-less": "1.3.0", "grunt-contrib-uglify": "2.0.0", "grunt-contrib-watch": "1.0.0", […]

将phantomJS部署到node.js应用程序?

我意识到“在Heroku上运行PhantomJS”是一个相关但略有不同的问题,因为我正在尝试使用节点应用程序。 我在为节点应用程序部署casperJS(基于phantomJS)脚本时遇到问题。 我已经尝试通过将PhantomJS 64位二进制文​​件放入我的应用程序的/bin目录来尝试部署到Heroku,但是当我尝试运行PhantomJS时遇到以下错误: phantomjs: error while loading shared libraries: libQtWebKit.so.4: cannot open shared object file: No such file or directory 从我读过这可以通过安装QtWebKit库解决,但Heroku没有安装。 是否有另一个托pipe服务提供商可以使用,或者在Heroku上安装这个软件包? 相关代码: app.get('/', function(request, response) { var sys = require('sys') var exec = require('child_process').exec; var child; //works but gives error while loading shared library libqtwebkit.so.4 child = exec("phantomjs –version | tr -d '\n'", […]

是否有可能有一个单独的devDependencies node_modules文件夹?

我有一个Node应用程序,我正在部署到Heroku。 他们的文档说最好的做法是检查你的node_modules目录 (即不要 gitignore它),更快的部署和dev / prod奇偶校验。 在我的package.json ,我有大量的devDependencies (主要是Grunt插件和所有的devDependencies )和一些像Express一样的常规生产dependencies 。 Heroku只需要生产部门。 我宁愿不检查所有的开发代码,因为它们大约有50MB。 有什么办法可以为你的开发人员提供一个单独的文件夹,例如node_modules_dev ? 如果这是可能的,那么我可以将node_modules_dev添加到我的.gitignore ,并根据Heroku的build议检入常规生产node_modules目录。 有没有办法做到这一点? 或者你能想出另一种方法去做我想做的事情吗?

在文件更改本地重新启动Heroku?

似乎本地服务器启动“heroku本地网”不注意文件的变化,并重新启动本身。 我怎样才能做到这一点?

Heroku上的Node.js有2个端口

我正在尝试将一个node.js应用程序推送到heroku。 该应用程序有一个HTTP服务器监听一个端口(process.env.PORT),但我也想要一个使用另一个端口的networking套接字。 这在heroku中可能吗? 我正在使用ws.js来做套接字。 在我的本地机器上,我明显可以使用3000作为一个端口,8080作为另一个端口,但是我看不到如何定义第二个端口,heroku会很乐意让我使用。 谢谢 亚光

Node.js应用程序部署在heroku中

我有我的MEAN应用程序的以下文件结构: root |—> public |—-> css |—-> js |—-> controller |—-> app.js |—-> views |—-> index.html |—> app |—-> server.js |—> node_modules |—> bower_components |—> gulpfile.js |—> package.json |—> Procfile 在这个应用程序中,我使用gulp运行public/index.html , gulpfile.js : var gulp = require('gulp'); var browserSync = require('browser-sync'); var server = require('gulp-live-server'); gulp.task('server', function() { live = new server('app/server.js'); live.start(); }) […]

在请求之外检索本地和heroku应用程序主机名

我必须在我的应用程序中configuration一个模块,并根据主机名给它一个特定的URL。 就像http://localhost local和http://myapp.herokuapp.com 。 我知道我可以根据NODE_ENV硬编码值,或者甚至将其作为环境值存储并使用process.env.CUSTOMVAR_HOSTNAME 。 但不知何故,它感觉不对,因为myapp已经在Herokupipe理面板中configuration。 而且我不能使用request.headers.host因为模块configuration在应用程序开始时发生,在任何请求可以被处理之前。 有没有办法从代码中检索Heroku应用程序名称? 还是从一个环境variables? 我希望我的代码保持不变,无论我是在本地还是在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目录?