Typescript + webpack
npm install
앞으로의 프로젝트를 typescript로 개발하고 싶은 욕심이 생겼습니다. input과 output의 명확함도 그렇고, decorator 등 다양한 기능을 사용해 볼 수 있더군요.
저는 지속적으로 npm에 publish를 하고 있는데, 그 중 gpx 데이터를 cesium.js에 활용할 수 있도록 czml 데이터로 변경하는 플러그인을 개발하여 퍼블리싱 하고 있습니다.
해당 프로젝트는 data를 받아서 처리해야 하는 부분들이 많은데, 이 부분들을 typescript로 명확하게 바꾸고 싶었습니다.
그 첫번째로 간단하게 리뉴얼 1일차 typescript + webpack을 통한 환경 설정을 포스팅하고자 합니다.
Typescript 특징
1) 대형 프로젝트에 적합한 언어
- type을 사용함으로써 javascript 어플리케이션을 개발할때의 자료 타입의 정적 검사 및 코드 리팩토링과 같은 생산성 높은 개발이 가능
- 타입은 선택 사항이며 주석을 통해서 코드의 정적검증에 변화를 줄 수도 있음.
- 소프트웨어 구성요소간의 인터페이스를 정의하고 javascript 라이브러리의 동작 파악 가능
2) 최신 javascript 기술 적용
- ECMAScript 2015에서 비동기 함수 (async/await) 및 decorator 같은 기능을 포함함.
- ECMAScript3까지도 컴파일 가능
사용법
-
-
typescript, webpack , path설치
npm install typescript webpack path --save
-
-
-
ts-loader 설치
npm install ts-loader --save-dev
-
webpack 설정
webpack.config.js 설정
// webpack.config.js
var webpack = require('webpack');
var path = require('path');
module.exports = {
entry: {
'main': 'src/main.ts'
},
output: {
filename: '[name].js',
path: path.resolve(__dirname, 'dist')
},
devtool: 'source-map',
module: {
rules: [
{
test: /\.ts$/,
use: ['ts-loader']
}
]
}
};
src/main.ts 생성
'use strict';
const main = () => {
console.log('hello world!');
};
export default main;
tsconfig.json 생성
{
"compilerOptions": {
"module": "commonjs",
"target": "es5",
"sourceMap": true
},
"exclude": [
"node_modules"
]
}
실행
webpack