๋ง์์ ๋๋ ์น์ฑ ํ ํ๋ฆฟ์ด ์์ด์ ๊ทธ๊ฑฐ ๋ค์ด๋ฐ๊ณ ํ๋ก์ ํธ๋ฅผ ์ธํ ํ๋ ๊ณผ์ ์์ ๋๋์ฒด path๋ฅผ ์ด๋ป๊ฒ ์ค์ ํ๋์ง ๋ชฐ๋๋ค.
30๋ถ ์ ๋ ํค๋งค๋ ๊ณผ์ ์์ ์ป์ ๊ฒฐ๊ณผ...

์ผ๋จ ์๋ํ ๊ฒฐ๊ณผ๋ ๋์จ๊ฒ์ด๋ฏ๋ก ๊ทธ ๊ณผ์ ์ ๊น๋จน๊ธฐ ์ ์ ์์ฑํ ๋ จ๋ค. ๋ ๊ธ๋ถ์ด๋๊น...๐
1. vite.config.ts์ alias๋ก @ ์ค์ ํ๊ธฐ
๋ ์ด๊ฑฐ ์๋์ผ๋ก ๋๋ ์ง์ ์ด์ธ์ค ์์๋๋ ๋ด๊ฐ ์ ํ๋ก ์ค์ ํด์ผ ํ๋๊ฑฐ๋๋ผ?;
์ด์จ๋ alias๋ก ์ค์ ํด์คฌ๋ค.

์ฌ๊ธฐ์ path๋ ๋ด ํ์ผ์ ์๋ paths.ts๊ฐ ์๋(๋ ์ด๊ฑด์ค ์์์ ๊ทธ๋ด๋ฆฌ๊ฐ ์๋๋ฐ ใ ใ ) Node.js์ ๋ด์ฅ ๋ชจ๋์ธ path๋ฅผ ์๋ฏธํ๋ค. Vite์ค์ ํ์ผ์ Node.jsํ๊ฒฝ์์ ์คํ๋์ง๋ง Typescript๊ฐ path๋ชจ๋ ํ์ ์ ์ธ์ ์ฐพ์ง ๋ชปํด์ ๊ณ์ ๋นจ๊ฐ์ค์ด ๋ํ๋ฌ๋ค.
โก๏ธ๊ณ ๋ก @types/node ํจํค์ง๋ฅผ ์ค์นํ ๊ฒ! ๋ ์๋ ๋ช ๋ น์ด๋ก ์ค์นํ๋๋ ์ ์์ ์ผ๋ก ๋ฌ๋ค.

์ ํจํค์ง(@types/node)๋ฅผ ์ค์นํด์ผ 'path'์ 'url' ๋ด์ฅ ๋ชจ๋์ ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก ๋ฐ๋์ ์ค์นํ ์ ์๋๋ก ํ๋ค!
์ ์์ ์ผ๋ก ํจํค์ง๊ฐ ์ค์น๋์๋ค๋ฉด 'path'์ 'url'์ ์ฌ์ฉํ ์ ์์ ๊ฒ์ด๋ค.
url์์ fileURLToPath๋ฅผ importํ๊ณ , __filename๊ณผ __dirname์ ์ ์ธํ๋ค.
๊ทธ๋ฆฌ๊ณ vite.config.ts์ ์๋ defineConfig์์ ๋ค์๊ณผ ๊ฐ์ ์ค์ ์ ์์ฑํ๋ค.

๊น๋๋ฐ๋ฆฌ ์ ์์ฑํ๋ค. ํํ!
2. tsconfig.json์๋ path ์์ฑํ๊ธฐ

๋ค์๊ณผ ๊ฐ์ด ์์ ๋ฐ๋ฆฌ ์ ์์ฑํ๋๋ก ํ์.
3. routerํด๋ ์ ํ์ผ๋ค์์ ๊ฒฝ๋ก๋ฅผ ์์ฑํ๊ธฐ
(1) sitemap.ts

path์ ๊ฒฝ๋ก ์ ์ง์ ํด์ฃผ๊ณ ,
(2) paths.ts

์ฌ๊ธฐ์๋ /pages/journal์ฒ๋ผ ๋์ค๋๋ก ์ธํ ํ๊ณ ,
(3) router.tsx
const Journal = lazy(() => import('@/pages/journal'));
const router = createBrowserRouter(
... ์๋ต,
children: [
{
index: true,
element: <Dashboard />,
},
{
path: '/pages/journal',
element : <Journal />,
}
],
)
์ ๋ ๊ฒ Journal์ path๋ฅผ /pages/journal์ด ๋์ค๋๋ก ์ ์ค์ ํ๋ค...
๋!
'ToyProjects๐งธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ํ๋ก์ ํธ ์ธํ - ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ์ ๋ํด (2) | 2025.07.09 |
|---|---|
| ๋ฒ์์ ์๋ฒ๋ฆฐ ๊น์ ์ฌ๊ธฐ (3) | 2025.05.15 |