[typescript] 웹팩으로 타입스크립트와 라우팅 연동하기
웹팩은 모듈 번들러로서, 프로젝트에서 여러 모듈을 번들링하여 하나의 파일로 만들어줍니다. 여기에 타입스크립트와 라우팅을 연동하여 사용하면, 프론트엔드 웹 애플리케이션의 개발 및 유지보수를 효율적으로 할 수 있습니다.
1. 타입스크립트 설정하기
먼저, package.json
파일에 typescript
, ts-loader
, ts-node
, @types/react
, @types/react-dom
등의 의존성 패키지를 설치합니다.
"devDependencies": {
"typescript": "^4.1.2",
"ts-loader": "^9.2.6",
"ts-node": "^9.1.1",
"@types/react": "^17.0.3",
"@types/react-dom": "^17.0.3"
}
그 다음, 타입스크립트 설정 파일 tsconfig.json
을 프로젝트 루트 디렉토리에 생성합니다.
{
"compilerOptions": {
"target": "es5",
"module": "esnext",
"jsx": "react",
"strict": true
}
}
2. 웹팩 설정하기
타입스크립트 파일을 번들링하기 위해 웹팩 설정 파일 webpack.config.js
를 생성하고, ts-loader
를 사용하여 타입스크립트 파일을 로드하도록 구성합니다.
const path = require('path');
module.exports = {
entry: './src/index.tsx',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js'
},
resolve: {
extensions: ['.ts', '.tsx', '.js']
},
module: {
rules: [
{
test: /\.tsx?$/,
use: 'ts-loader',
exclude: /node_modules/
}
]
}
};
3. 라우팅 설정하기
라우팅 라이브러리로는 react-router-dom
을 예로 들어 설명합니다. 이를 위해 react-router-dom
, @types/react-router-dom
패키지를 설치합니다.
npm install react-router-dom @types/react-router-dom
그리고 라우팅을 구현하는 컴포넌트를 작성하고, 라우터 컴포넌트를 사용하여 라우팅을 설정합니다.
import React from 'react';
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';
const App = () => {
return (
<Router>
<Switch>
<Route exact path="/" component={Home} />
<Route path="/about" component={About} />
</Switch>
</Router>
);
};
이렇게 웹팩으로 타입스크립트와 라우팅을 연동하면, 타입 안정성을 확보하면서 모듈 번들링 및 라우팅을 손쉽게 구현할 수 있습니다.
참고: