파일 작업을 하다보면 폴더 이동이라던가 일반화라던가 옮길상황이 은근히 생긴다.
이떄 경로단위로 설정해주면 파일 경로를 일일이 수정하기 편하고 시간이 많이 줄어든다.
다음 두 파일을 모두 작업한다.
이때 path 사용은 Types node 설치를 동반한다.
npm i -D @types/node
import path from 'path'로 바로 가져올 수 있지만,import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import * as path from "path";
// https://vitejs.dev/config/
export default defineConfig({
plugins: [react()],
resolve: {
alias: {
"@": path.resolve(__dirname, "./src"),
"@assets": path.resolve(__dirname, "./src/assets"),
"@components": path.resolve(__dirname, "./src/components"),
"@data": path.resolve(__dirname, "./src/data"),
"@models": path.resolve(__dirname, "./src/models"),
"@store": path.resolve(__dirname, "./src/store"),
"@styles": path.resolve(__dirname, "./src/styles"),
"@utils": path.resolve(__dirname, "./src/utils"),
},
},
root: ".",
build: {
outDir: "../dist/shop",
},
});
“compilerOptions”.”baseUrl”
@types/node 적용을 위함.)프로젝트 루트를 기준으로 하는 ‘프로젝트 절대경로’ 사용을 위하여 사용하나, Vite + Types 조합에서 안 먹는 것으로 짐작함.
“compilerOptions”.”paths” = { ... }
{
"compilerOptions": {
"target": "ESNext",
"types": ["node"],
"paths": {
"@/*": ["./src/*"],
"@assets/*": ["./src/assets/*"],
"@components/*": ["./src/components/*"],
"@data/*": ["./src/data/*"],
"@models/*": ["./src/models/*"],
"@store/*": ["./src/store/*"],
"@styles/*": ["./src/styles/*"],
"@utils/*": ["./src/utils/*"]
},
"useDefineForClassFields": true,
"lib": ["DOM", "DOM.Iterable", "ESNext"],
"allowJs": false,
"skipLibCheck": true,
"esModuleInterop": false,
"allowSyntheticDefaultImports": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"module": "ESNext",
"moduleResolution": "Node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "react-jsx"
},
"include": ["src"],
"references": [{ "path": "./tsconfig.node.json" }]
}
그밖에도 혹시 사용할 jsx 등 필요한 옵션들을 추가해줬다.

기존의 경로는 파일을 옮기면 그파일 기준에서 상위로 두번가서 잘못된 파일을 찾고 오류를 발생시킬것이고
아래 새로 적용한 경로 앨리어싱은 파일을 옮겨도 정상적으로 찾아서 사용자의 실수를 줄여줄것이다.