Razzle: ๋ฐฐํฌํ•˜๋Š” ๋™์•ˆ Heroku์—์„œ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ

์— ๋งŒ๋“  2017๋…„ 09์›” 06์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: jaredpalmer/razzle

Heroku์— ๋ฐฐํฌ ์ค‘์ด๋ฉฐ package.json ๋‹ค์Œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํฌํ•จํ–ˆ์Šต๋‹ˆ๋‹ค.

"scripts": {
  "heroku-postbuild": "yarn run build"
  "start": "NODE_ENV=production node build/server.js"
}

๋ถˆํ–‰ํžˆ๋„ PORT env var๋Š” ๋นŒ๋“œ ์‹œ ์•Œ๋ ค์ง€์ง€ ์•Š๊ณ  ๋Œ€์‹  ๋Ÿฐํƒ€์ž„ ์‹œ Heroku์— ์˜ํ•ด ํ• ๋‹น๋˜๋ฉฐ, razzle์€ ๋นŒ๋“œ ์‹œ ํฌํŠธ๋ฅผ ์•Œ์•„์•ผ ํ•˜๋ฏ€๋กœ ์„œ๋ฒ„๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ๋นŒ๋“œํ•ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์—ผ๋‘์— ๋‘๊ณ  ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณ€๊ฒฝํ•˜๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค.

"scripts": {
  "start": "NODE_ENV=production yarn run build && node build/server.js"
}

๋ถˆํ–‰ํžˆ๋„ ๋„ˆ๋ฌด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๊ณ  60์ดˆ Heroku ์‹œ๊ฐ„ ์ดˆ๊ณผ ํ›„์— ๋ฐ”์ธ๋”ฉ๋ฉ๋‹ˆ๋‹ค.

2017-09-06T01:23:13.536789+00:00 app[web.1]: ํด๋ผ์ด์–ธํŠธ ์ปดํŒŒ์ผ ์ค‘...
2017-09-06T01:23:14.395857+00:00 heroku[web.1]: ์˜ค๋ฅ˜ R10(๋ถ€ํŒ… ์‹œ๊ฐ„ ์ดˆ๊ณผ) -> ์›น ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰ ํ›„ 60์ดˆ ์ด๋‚ด์— $PORT์— ๋ฐ”์ธ๋”ฉํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.
2017-09-06T01:23:14.395963+00:00 heroku[web.1]: SIGKILL๋กœ ํ”„๋กœ์„ธ์Šค ์ค‘์ง€
2017-09-06T01:23:14.499913+00:00 heroku[web.1]: ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ƒํƒœ 137๋กœ ์ข…๋ฃŒ๋จ
2017-09-06T01:23:14.509625+00:00 heroku[web.1]: ์ƒํƒœ๊ฐ€ ์‹œ์ž‘์—์„œ ์ถฉ๋Œ๋กœ ๋ณ€๊ฒฝ๋จ

๋นŒ๋“œ ์‹œ ํฌํŠธ๋ฅผ ์š”๊ตฌํ•˜์ง€ ์•Š๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๋ ‡๋‹ค๋ฉด ์™œ ํ•„์š”ํ•ฉ๋‹ˆ๊นŒ?

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

// razzle.config.js
const razzleHeroku = require("razzle-heroku")

module.exports = {
  modify: (config, {target, dev}, webpack) => {
    config = razzleHeroku(config, {target, dev}, webpack)
    // do something to config

    return config
  },
}

์•„๋งˆ ์ด๋Ÿฐ ๊ฒƒ?

๋ชจ๋“  3 ๋Œ“๊ธ€

razzle-heroku๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. :) ๊ธฐ๋ณธ razzle ๊ตฌ์„ฑ์„ ํ™•์žฅํ•˜์—ฌ heroku์—์„œ ์ž‘๋™ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

์•„ ๊ทธ๊ฑด ๋ชฐ๋ž๋„ค์š” ์ง€์ ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ์‚ฌ์šฉ์ž ์ •์˜ modify ๊ธฐ๋Šฅ์ด ์žˆ๋Š” razzle.config.js ๊ฐ€ ์ด๋ฏธ ์žˆ๋Š” ๊ฒฝ์šฐ razzle-heroku๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ๊ณ„์† ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

// razzle.config.js
const razzleHeroku = require("razzle-heroku")

module.exports = {
  modify: (config, {target, dev}, webpack) => {
    config = razzleHeroku(config, {target, dev}, webpack)
    // do something to config

    return config
  },
}

์•„๋งˆ ์ด๋Ÿฐ ๊ฒƒ?

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰

๊ด€๋ จ ๋ฌธ์ œ

corydeppen picture corydeppen  ยท  3์ฝ”๋ฉ˜ํŠธ

dizzyn picture dizzyn  ยท  3์ฝ”๋ฉ˜ํŠธ

gabimor picture gabimor  ยท  3์ฝ”๋ฉ˜ํŠธ

howardya picture howardya  ยท  5์ฝ”๋ฉ˜ํŠธ

ewolfe picture ewolfe  ยท  4์ฝ”๋ฉ˜ํŠธ