본문으로 건너뛰기

Vite 설정과 멀티 테넌트 시스템

Vite를 사용하여 27개 브랜드 템플릿의 멀티 테넌트 시스템을 관리하고, 동적 컴파일과 환경 격리를 구현하는 방법.


1. SiteKey를 통한 템플릿 라우팅 동적 로딩​

function writeBuildRouter() {
const sourceFile = path.resolve(
__dirname,
`../../template/${siteKey}/router/routes.ts`
);
const destinationFile = path.resolve(__dirname, '../../src/router/build.ts');

fs.readFile(sourceFile, 'utf8', (err, data) => {
if (err) {
console.error(`Error reading file: ${err}`);
return;
}

fs.writeFile(destinationFile, data, 'utf8', (err) => {
if (err) {
console.error(`Error writing file: ${err}`);
return;
}
console.log(
`File copied successfully from ${sourceFile} to ${destinationFile}`
);
buildFile(siteKey);
});
});
}
  • 빌드 시 SiteKey를 통해 해당 템플릿 라우팅을 동적으로 로딩
  • 환경 변수 SITE_KEY를 사용하여 컴파일할 템플릿 선택
  • 단일 리포지토리에서 여러 템플릿을 관리하여 코드 중복 방지

2. 커스텀 환경 변수 주입 시스템​

3. TailwindCSS & RWD 브레이크포인트 설계 통합​

4. 개발 환경 Proxy 설정​

5. Vue i18n Vite 플러그인 통합​

6. 호환성 설정​

target: {
browser: ["es2019", "edge88", "firefox78", "chrome87", "safari13.1"],
node: "node16"
},
  • 정밀한 브라우저 호환성 제어
  • 현대적 기능과 호환성 간의 균형