2015-06-22 28 views
1

的package.jsonHeroku的Procfile - 运行NPM启动

{ 
    //Other stuff here 

    "scripts": { 
    "prestart": "./scripts/prestart.sh", 
    "start": "./scripts/start.sh" 
    } 
} 

prestart.sh

#!/usr/bin/env bash 
set -ex 
webpack 

start.sh

#!/usr/bin/env bash 
set -ex 
http-server -p $PORT 

Procfile

web: npm start 

当我推送到heroku时,出现应用程序错误。所以我运行了一个heroku run bash,并注意到prestart和start脚本根本没有运行(运行prestart调用webpack - 这将创建一个带有js文件的生成文件夹)。

任何想法来解决这个问题?

编辑:

  1. WebPACK现在可工作时,我把它安装后,而不是预启动。

  2. http-server无法运行。当我运行heroku logs --tail时,我看不到来自http-server的任何输出。

    输出的

heroku logs --tail

2015-06-23T18:05:55.628044+00:00 heroku[slug-compiler]: Slug compilation started 
2015-06-23T18:05:55.628049+00:00 heroku[slug-compiler]: Slug compilation finished 
2015-06-23T18:05:55.582057+00:00 heroku[api]: Deploy ** by *** 
2015-06-23T18:05:55.582057+00:00 heroku[api]: Release v14 created by **** 
2015-06-23T18:07:49.114534+00:00 heroku[api]: Starting process with command `bash` by **** 
2015-06-23T18:07:54.748361+00:00 heroku[run.8851]: Starting process with command `bash` 
2015-06-23T18:07:54.7:00 heroku[run.8851]: Awaiting client 
2015-06-23T18:07:54.808283+00:00 heroku[run.8851]: State changed from starting to up 
2015-06-23T18:22:20.007391+00:00 heroku[run.8851]: State changed from up to complete 
2015-06-23T18:22:19.997342+00:00 heroku[run.8851]: Process exited with status 0 

回答

3

如果您使用webpack建立自己的应用程序,你应该把它放到postinstall脚本(不prestart),所以它运行在构建。

npm start当Heroku试图启动您的应用程序时应该定期执行。要查看发生了什么,请检查heroku logs --tail

+1

太棒了+1。当我将它放入postinstall时,现在运行webpack(仍然不确定它为什么在prestart中不起作用)。 – Hari

+0

另外我没有看到正在运行的http服务器(检查日志,并在框中运行ps)。 – Hari

+0

当你运行'heroku logs --tail'时你会看到什么? – hunterloftis