跳至主要内容

[Heroku] Heroku 筆記

定義 Procfile 檔

再執行 app 的時候,Heroku 會先去根目錄找 Procfile 檔案,如果不存在的話,預設會執行 package.json 中的 start script,因此我們最好要定義 Procfile 檔案。

將 Procfile 檔案放在根目錄,告訴 heroku 要如何啟動你的 app:

# Procfile
web: node index.js # web 是關鍵字

設定環境變數

我們可以將環境變數定義在 .env 這個檔案中, 當執行 heroku local 的時候,heroku 會自動去抓取這個環境變數

# .env
process.env.TIMES

設定 package.json

設定 node 版本:engines

在 package.json 這個檔案中定義 engines ,來讓 heroku 知道要 run 哪個 node 版本:

// package.json

"engines": {
"node": "4.1.1",
"npm" : "5.0.2" // 也可以定義 npm 的版本,但一般來說不用設定
}

設定要執行的指令:scripts

heroku 提供一些 hook 可以在特定的時候執行特定的 scripts:

// package.json

"scripts": {
"start": "node index.js",
"test": "mocha",
"preinstall": "",
"postinstall": "bower install && grunt build",
"heroku-prebuild": "",
"heroku-postbuild": "",
}

設定 heroku 上的變數

heroku config:set MY_CUSTOM_VALUE=foobar
# Change Default Setting
heroku config:set NPM_CONFIG_PRODUCTION=false
heroku config:set YARN_PRODUCTION=false
heroku config:set NODE_MODULES_CACHE=false
heroku config:set NODE_ENV=staging # default is "production"

參考資料