PJCHENder 未整理筆記

[Heroku] Heroku 筆記

2018-05-17

[Heroku] Heroku 筆記

@(網站部署)[heroku]

定義 Procfile 檔

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

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

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

設定環境變數

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

1
2
# .env
process.env.TIMES

設定 package.json

設定 node 版本:engines

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

1
2
3
4
5
6
// package.json

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

設定要執行的指令:scripts

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

1
2
3
4
5
6
7
8
9
10
// package.json

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

設定 heroku 上的變數

1
heroku config:set MY_CUSTOM_VALUE=foobar
1
2
3
4
5
# 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"

參考資料

Tags: heroku

掃描二維條碼,分享此文章