DEVLOG
Next.js ํ๋ก์ ํธ :: ๋ฐฐํฌ(gh-pages, netlify, vercel) ๋ณธ๋ฌธ
Next.js ํ๋ก์ ํธ :: ๋ฐฐํฌ(gh-pages, netlify, vercel)
meroriiDev 2023. 7. 12. 10:08๐ ๋ชฉ์ฐจ
์ด๋ฆํ์ผ next.js ๋ฐฐํฌ ์ฝ์ง ๊ธฐ๋ก,,,,,๐
๊ฒฐ๋ก ์ ์ผ๋ก๋ vercel์ ์ด์ฉํ์ฌ ๋ฐฐํฌ๋ฅผ ์งํํ์ต๋๋ค!
๐ gh-pages
gh-pages ๋ฐฐํฌ ์ฐธ๊ณ
๊ทธ๋์ ๋ชจ๋ ํ๋ก์ ํธ๋ฅผ ๋ฐฐํฌํ ๋์๋ ๊ฐ๋จํ๊ฒ gh-pages๋ฅผ ์ด์ฉํ์๋ค.
๊ทธ๋์ ์ด๋ฒ ํ๋ก์ ํธ๋ ๊ธฐ์กด์ ํ๋ ๊ฒ ์ฒ๋ผ gh-pages๋ฅผ ์ด์ฉํ์ฌ ๋ฐฐํฌํ๋ ค๊ณ ํ์ผ๋,, ์์ํ์ง ๋ชปํ ๋ฌธ์ ๋ฅผ ๋ง๋ฌ๋ค.
์ค๋ฅ : gssp(getServerSideProps) + export
"build": "next build && next export",
gh-pages๋ก ๋ฐฐํฌํ๊ธฐ ์ํด์๋ next export
๋ช
๋ น์ด๋ฅผ ํตํด outํด๋๋ฅผ ์์ฑํด๋ด์ผ ํ๋๋ฐ export ์งํ ์ ์๋์ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
Error occurred prerendering page "/contents/[id]". Read more: https://nextjs.org/docs/messages/prerender-error
Error: Error for page /contents/[id]: pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export
at C:\Users\SONIA\Desktop\project\meroriiving\node_modules\next\dist\export\worker.js:245:23
at async Span.traceAsyncFn (C:\Users\SONIA\Desktop\project\meroriiving\node_modules\next\dist\trace\trace.js:79:20)
๋ฌธ์ ๋ getServerSideProps๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ.
๊ฐ๋จํ ์ ์ ํ์ด์ง๊ฐ ์๋๋ผ ์๋ฒ์ฌ์ด๋๋ ๋๋ง์ด ์ด๋ฃจ์ด์ง๋ ํ์ด์ง์ ๊ฒฝ์ฐ export๋ฅผ ์ง์ํ์ง ์๋๋ค๋ ๊ฒ์ด๋ค.
๊ณต์๋ฌธ์(ggsp์ค๋ฅ ๊ด๋ จ next.js ๊ณต์ํํ์ด์ง ๊ธ) ์ ๋ฐ๋ผ ๋ค์ ํด๊ฒฐ๋ฐฉ๋ฒ ๋๊ฐ์ง๋ฅผ ์ป์์ง๋ง ๋ ํด๊ฒฐ๋ฐฉ๋ฒ ๋ชจ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์๋ค.
Possible Ways to Fix It
- If you'd like to keep your application static, you can use getStaticProps instead of getServerSideProps.
- If you want to use server-side rendering, update your build command and remove next export. For example, in your package.json:
๐ netlify
ํด๊ฒฐ๋ฐฉ๋ฒ์ ์ฐพ์ ๊ตฌ๊ธ๋ง์ ํ๋ ์ค netlify๋ ์ด๋ฌํ ์ด์๋ฅผ ํด๊ฒฐํ ์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(@netlify/plugin-nextjs
)๋ฅผ ์ ๊ณตํ๋ค๋ ๊ฒ์ ํ์ธํ๊ณ , ๊ทธ๋์ gh-pages๊ฐ ์๋ ์๋ก์ด ๋ฐฐํฌํ๊ฒฝ์ ์ฐพ์ ์๋ํด๋ณด๋ ๊ฒฝํ์ ํ๋ค.
- @netlify/plugin-nextjs ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐ
- netlify.toml ํ์ผ ์ถ๊ฐ
- package.json์
next export
script ์ ๊ฑฐ
yarn add @netlify/plugin-nextjs
์ค๋ฅ : 500 error
๋ธ๋ก๊ทธ์์ ํ๋ผ๋ ๋๋ก ์ธํ ํ๊ณ publish directory๋ .next๋ก ์ค์ ํด์ฃผ์๋๋ฐ ์๋ฌด๋ฆฌํด๋ ๋งํฌ์ ์ ์์ 500์๋ฌ๋ง์ด ๋ ๋ง์ดํด์ฃผ์๋ค... ํด๊ฒฐ ๋ถ๊ฐ๋ฅํ๋ค๊ณ ํ๋จํ์ฌ ๋น ๋ฅด๊ฒ ํฌ๊ธฐ!
๐ vercel
๊ทธ๋์ ๋ง์ง๋ง์ผ๋ก ์ ํํ vercel!!
vercel์ next.js๋ฅผ ๋ง๋ ์ฌ๋๋ค์ด ๋ชจ์ฌ ๋ง๋ ๋น๋+๋ฐฐํฌ+ํธ์คํ
์๋น์ค๋ก next.js์ ๊ณต์์ ์ผ๋ก ์ฌ์ฉํ๊ธธ ์ถ์ฒ๋๋ ํธ์คํ
์ฌ์ดํธ์ด๋ค.
ํ๋ฒ๋ ์ฌ์ฉํด๋ณด์ง ์์๋ค๋ ์ด์ ๋ก ๋ฌด์ํ์ฑ ์ต์ํ๋ gh-pages๋ฅผ ์ด์ฉํด์๋๋ฐ ์ด๋ฒ ๊ธฐํ๋ฅผ ํตํด ์ด์ฉํด๋ณด๊ฒ ๋๋ค!
์ ๋ฐ.. ๊ณต์์ผ๋ก ์ง์๋๋ ๋งํผ ๋๊ธธ ๋ฐ๋ผ๋ฉด์,,!!!
์ ๋ธ๋ก๊ทธ์์ ํ๋ผ๋ ๋๋ก ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ์ฐ๊ฒฐํ ํ์ด์ง์์ deploy๋ฅผ ์งํํ๊ณ , ์ดํ vscodeํฐ๋ฏธ๋์์ ๋ณ๋ค๋ฅธ build๋ export๋ฅผ ์งํํ์ง ์๊ณ ์ฝ๋๋ฅผ push ํ๋๊ฒ๋ง์ผ๋ก๋ ์๋๋ฐฐํฌ๊ฐ ์ฐ๊ฒฐ๋์ด ์ฑ๊ณต์ ์ผ๋ก ๋ฐฐํฌ๊ฐ ์งํ๋๋ ๊ฒฐ๊ณผ๋ฅผ ์ป์๋ค!!! ใ
ใ
ใ
ใ
ใ
ใ
ใ
ใ
ใ
ใ
ใ
ใ
ใ
ใ
ใ
์์ผ๋ก๋ nextํ๋ก์ ํธ๋ฅผ ํ ๋ vercel์ ์ ๊ทน ์ด์ฉํ ์์ ์ด๋ค!โจโจ
์ฑ๊ณต!
๐ Next?
ํ์ด์ง ๋ฐฐํฌ๊น์ง ํ๋ก์ ํธ๋ฅผ ๋ง๋ฌด๋ฆฌํ๋ค! ์ดํ์๋ ์ฝ๋๋ฆฌํฉํ ๋ง์ ๊ฑฐ์ณ ๋ ๊น๋ํ๊ณ ๋ณด๊ธฐ ์ข์ ์ฝ๋๋ฅผ ๋ง๋๋๋ฐ์ ์๊ฐ์ ํฌ์ํ ์์ ์ด๊ณ , ์๊ฐ์ด ๋๋ค๋ฉด ์์์ฌ์๊ธฐ๋ฅ์ ์ถ๊ฐํ ์์ ์ด๋ค!
'frontend > next.js' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Next.js ํ๋ก์ ํธ :: infinite scroll ๊ตฌํํ๊ธฐ (0) | 2023.07.12 |
---|---|
Next.js ํ๋ก์ ํธ :: carousel ๊ตฌํํ๊ธฐ (0) | 2023.06.22 |
Next.js ํ๋ก์ ํธ :: getServersideProps (0) | 2023.06.22 |
Next.js ํ๋ก์ ํธ :: Open API (TMDB), React-Query (0) | 2023.06.22 |
Next.js ํ๋ก์ ํธ :: ์ธํ (0) | 2023.06.22 |