
SWC(Speedy Web Compiler) 는 매우 빠른 웹 컴파일러 입니다.
💡 다만, Babel의 모든 플러그인과 호환되지 않으므로 적용 시 주의가 필요합니다. SWC는 현대적인 웹 개발에서 빌드 성능을 크게 향상시키는 도구로, 특히 대규모 프로젝트에서 유용합니다.
tsc와 SWC는 비슷한 역할을 하지만 몇 가지 중요한 차이점이 있습니다.
SWC is 20x faster than Babel on a single thread and 70x faster on four cores.
SWC는 단일 스레드에서는 Babel보다 20배 빠르고 4개 코어에서는 70배 빠릅니다.
⇒ 결론적으로, tsc와 SWC는 TypeScript 코드를 JavaScript로 변환하는 역할을 하지만, SWC는 빠른 속도에 중점을 두고 있으며 타입 검사는 수행하지 않습니다. 프로젝트의 요구사항에 따라 적절한 도구를 선택해야 합니다
타입 검사 : tsc를 사용하여 타입 검사를 수행합니다. 이는 코드의 타입 안정성을 확보하는 데 중요합니다.
코드 변환 : SWC를 사용하여 TS 코드를 JS 로 변환합니다.
빌드 프로세스 설정 :
tsconfig.json 파일에서 "noemit" : true 옵션을 설정하여 tsc가 JS 파일을 생성하지 않도록 합니다..swcrc 파일을 프로젝트 루트에 생성합니다.스크립트 설정 : package.json 에 다음과 같은 스크립를 추가합니다
{
"scripts": {
"type-check": "tsc --noEmit",
"build": "swc src -d dist"
}
}
개발 과정 :
npm run type-check 로 타입 검사를 실행합니다.npm run build 로 SWC를 사용해 코드를 변환합니다.이 방식을 통해 tsc의 강력한 타입 검사 기능과 swc의 빠른 컴파일 속도를 모두 활용할 수 있습니다.
vite에서 swc를 사용하기 위해 @vitejs/plugin-react-swc 플러그인을 설치해야 합니다. package.json에 다음과 같이 설정합니다.
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react-swc';
export default defineConfig({
plugins: [react()],
});
이 설정을 통해 SWC가 React 코드를 변환하도록 Vite에 지시합니다.