๐Ÿ› /Dev Tool

[gh-pages] CRA ๋ฐฐํฌ ์‹œ homepage ๊ฒฝ๋กœ๋ฅผ ์ฐธ์กฐํ•˜์ง€ ๋ชปํ•  ๋•Œ

ํ•œ๋‚˜ 2021. 3. 16. 12:38

gh-pages๋กœ ๋ฆฌ์•กํŠธ ์•ฑ์„ ๋ฐฐํฌํ•  ๋•Œ URL ์„ค์ •์„ package.json์— homepages๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋Š” ์•ˆ ๋ผ์„œ ๊ฒ€์ƒ‰ํ•˜๋‹ค๊ฐ€ ๋‚˜์ค‘์— ๋˜ ์žŠ์„๊นŒ๋ด ๊ธฐ๋ก์œผ๋กœ ๋‚จ๊ฒจ๋‘”๋‹ค ..^^

package.json

 

gh-pages๋ฅผ installํ•œ ๋’ค script์— predeploy์™€ deploy ๋ช…๋ น์–ด๋ฅผ ๋„ฃ์–ด์ค€ ๋’ค "homepage"์— ๋‚ด ๊นƒํ—™ ์•„์ด๋”” + github.io + ํ˜„์žฌ ์ €์žฅ์†Œ ์ด๋ฆ„์„ ๋„ฃ์–ด์ค€ ๊ฒƒ๊นŒ์ง€๋Š” ๋‹ค๋ฅธ ํŠœํ† ๋ฆฌ์–ผ์— ๋‚˜์™€ ์žˆ๋Š” ๋‚ด์šฉ๊ณผ ๋™์ผํ•˜๊ฒŒ ์ง„ํ–‰ํ–ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์ž๊พธ ๋นŒ๋“œ๋œ ํŒŒ์ผ์— ๋ฒˆ๋“ค๋œ css๋‚˜ js ํŒŒ์ผ์„ ์ฐธ์กฐํ•˜๋Š” ๊ฒฝ๋กœ๊ฐ€ /github.io...๋กœ ์‹œ์ž‘ํ•˜๊ณ  ์žˆ์—ˆ๋‹ค. ์ฆ‰, github io๋ฅผ ๋„ฃ์€ ์™„์ „ํ•œ URL์„ ์ฐพ์ง€ ๋ชปํ•˜๊ณ  ์žˆ์—ˆ๋‹ค. React-router ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋„ ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋‹ˆ browser-router ์ชฝ ์ด์Šˆ์ธ๊ฐ€ ์‹ถ์–ด์„œ ์•„๋ž˜์ฒ˜๋Ÿผ Router.js ํŒŒ์ผ์„ ์ผ๋ถ€ ์ˆ˜์ •ํ•ด์ฃผ์—ˆ๋‹ค.

Router.js

์›๋ž˜๋Š” <Router>๊ฐ€ ์ตœ์ƒ๋‹จ์— ์œ„์น˜ํ•˜๋Š”๋ฐ ์ด๋ฅผ <BrowserRouter basename={process.env.PUBLIC_URL}>๋กœ ๊ฐ์‹ธ์ฃผ์—ˆ๋‹ค.

.env

// root
PUBLIC_URL=https://hannah26hannah.github.io/react-twitter-clone/

๋ฃจํŠธ ๋ฐ”๋กœ ์•„๋ž˜์—๋Š” Firebase ์„ค์ • ํŒŒ์ผ์„ ์œ„ํ•œ ํ‚ค๊ฐ€ ๋‹ด๊ธด .env ํŒŒ์ผ์ด ์žˆ๊ณ , ์—ฌ๊ธฐ์— ์œ„์ฒ˜๋Ÿผ PUBLIC_URL์„ ์„ค์ •ํ•ด์ฃผ์—ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๊ณ  ๋‚˜๋‹ˆ๊นŒ ์ •์ƒ์ ์œผ๋กœ ๋นŒ๋“œ๋˜๊ณ  ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

Reference

2๋‹ฌ ์ „์— ๊ฒŒ์‹œ๋œ ์Šคํƒ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ๋‹ต๋ณ€์„ ์ฐธ๊ณ ํ–ˆ๋‹ค.