heroku上部署thinkjs项目需要注意的地方

heroku我就不多做介绍了,大家可以看我在另一篇博客中写的heroku简介,或者自行搜索了解。这里主要分享下我在部署thinkjs项目到heroku时碰到的一些问题以及解决办法。

1.自定义项目启动命令

在heroku上部署nodejs项目默认启动命令是npm start,如果你的项目启动命令不是npm start,那就需要自定义。

方法是,在项目根目录下创建Procfile文件,在文件中填写web: node www/production.js $PORT

这样heroku就会自动扫描项目根目录下的的Procfile文件,并用文件中的命令来启动项目。heroku每次启动项目分配的端口号都会变化,所以需要$PORT来绑定动态端口。

2.修改.gitignore文件

thinkjs命令创建项目会在项目根目录下自动创建.gitignore文件,如果在创建命令时加了--es参数,那.gitignore文件中会有一行app/,也就是忽略app/目录。

如果是在github上分享自己的代码,那确实应该忽略app/目录。但heroku恰好也是通过git部署,而部署到生产环境应该忽略src/目录,忽略app/目录反而会导致项目无法启动。

所以把.gitignore文件中的app/改成src/就没问题了。

如果生成项目时没有加--es参数,那.gitignore文件中就不会有app/这一行,前面说的这个问题自然也就不会出现了。