在Polymer 1.0之前,我使用的是python简单的http服务器和/或apache。当我遇到入门套件应用程序时,我开始使用内置的browsersync,通过gulp serve。
这适合在Heroku上托管吗?
我补充说:
"scripts": {
"start": "gulp serve:dist"
},
到我的package.json,它试图运行。当我尝试加载页面时,我得到:
heroku[router]: at=error code=H10 desc="App crashed" method=GET
Heroku的指南基于传统的节点应用程序,而package.json中的Procfile或“script”通常只是node app.js
。
我觉得我错过了一些微不足道的东西。任何帮助将不胜感激!
答案 0 :(得分:2)
我最近重访了这个。我发现了一个很简单的解决方案 我添加了一个" serve.js" (名字不重要) 内容:
var express = require('express');
var app = express();
app.use(express.static("" + __dirname + "/dist"));
app.listen(process.env.PORT || 5000);
然后,在我的package.json文件中,我添加了:
"scripts": {
"start": "node serve.js",
"postinstall": "bower install && gulp"
},
node serve.js
也可以在Procfile中。 Heroku应该识别并使用它。 postinstall用于获取bower组件,并运行默认的gulp构建任务。
https://devcenter.heroku.com/articles/nodejs-support
答案 1 :(得分:0)
如果您在示例应用中的'serve:dist'任务中运行 gulp.vulcanize ,并且还希望托管./dist文件夹,则heroku不是一个好主意。 H没有buildpack来接受像vulcainzed ./dist那样的平面文件夹,只是用nginx / apache来托管它。
buildpack列表中没有4个聚合物,尽管使用节点包装器似乎是an option与Heroku /聚合物。 IMO这不是最好的,因为当尝试简单地将./dist文件夹推送到网络时,节点层是额外的错误。
有些黑客可以让它在H(下面的链接)上运行,或者使用Heroku API来简单地推送文件夹,但IMO你可以做得更好。
我会很努力地看待AWS或者github页面B4 heroku。 请注意,我使用./dist文件夹并使用
快速尝试了github页面var ghpages = require('gh-pages');
...
gulp.task('deploy', ['default'], function(cb) {
ghpages.publish(path.join(process.cwd(), 'dist'), cb);
});
在github上,由于#的某些路由器问题,它已失败!链接。所以我决定将未经硫化的版本推向网络。 (不是最好的)
在决定将./dist文件夹推送到网络上某处之前,请确保您可以在不使用'gulp.serve'任务的情况下在本地托管./dist。您可能会看到在您的项目中推送'gulp.serve'和npm的选项,但是当硫化试图生成那个./dist文件夹时,包含所有额外的内容是没有意义的!
在stdout中确定硫化任务实际上正在完成......
[15:59:59] Starting 'vulcanize'...
[16:00:00] 'vulcanize' all files 436.07 kB
[16:00:00] Finished 'vulcanize' after 1.14 s
根据您对入门套件的扩展方式,“硫化”可以fail pretty silently,以便您在托管./dist文件夹时继续处理其他问题而不会发现'硫化'失败。
Is it possible to upload a simple html and javascript file structure to heroku?
https://www.npmjs.com/package/gulp-gh-pages
How to deploy node app that uses grunt to heroku
http://www.sitepoint.com/deploying-heroku-using-gulp-node-git/