Angular2 with Webpack
· 약 14분
앞서
정말 angular2 를 배우고 싶었다.
대세는 angular2 와 react 가 되었지만 angular2 를 선택한건 angular1 에 반했었고 구글이기 때문이었다. 근데 angular2 를 사용하려면 typescript 를 알아야하고, systemjs 또는 webpack 을 알아야하며 rxjs, corejs, zonejs, karma, e2e 등 새로운 기술을 너무 많이 알아야되었다.
대부분이 여기서 좌절(?)해 react 나 vue 로 가려고 하는 것 같다. 러닝 커브가 상당했던 이유는 이러했다.
- angular2 의 포스트는 이론만 많았다.
- 실전을 찾으면 버전이 알파 또는 베타 버전이라 현재와는 호환이 안된다.
- 설치법은 알려주지도 않는다. (다 nodejs 개발자라 생각하는 것 같다.)
- 어떤 패키지가 무슨 기능에 사용되는지 하나도 알려주지 않는다.
- 심지어 공식 홈페이지의 starter-kit 을 clone 하면 오만가지의 테스팅 모듈도 다 딸려와 정신이 혼미하다.
2016 년에 자바스크립트를 배우는 기분은 대부분이 이런 것 같다.
하나하나 차근차근 알아가며 angular2 로 빠져보자.
npm
먼저 angular2 (이하 ng2)는 npm 으로 설치를 해야한다.
npm 이 무엇인가? bower, composer, maven 같은 패키지 다운로드 매니저이다. 더 쉽게 말하면 자바스크립트 라이브러리 를 다운로드하고 관리해주는 프로그램이라 생각하자.
nodejs 다운로드에서 맞는 윈도우 버전을 다운로드해 설치하자.
package.json
npm 으로 자바스크립트 라이브러리를 다운받기 위해선 package.json(설정파일)이 필요하다. 원하는 위치에 폴더를 만들자. (D:\workspace\ng-test)
그리고 package.json 파일을 폴더 하위에 만든다.
package.json
{
"name": "ng2-webpack-start",
"version": "0.1.0",
"dependencies": {
"@angular/common": "^2.4.6",
"@angular/compiler": "^2.4.6",
"@angular/core": "^2.4.6",
"@angular/forms": "^2.4.6",
"@angular/http": "^2.4.6",
"@angular/platform-browser": "^2.4.6",
"@angular/platform-browser-dynamic": "^2.4.6",
"@angular/router": "^3.4.6",
"core-js": "^2.4.1",
"reflect-metadata": "^0.1.9",
"rxjs": "^5.1.0",
"zone.js": "^0.7.6"
}
}
설명
- name : 프로젝트의 이름
- version : 버전 기법에 맞게 원하는대로 적는다.
- dependencies : ng2 프로젝트에 사용할 js library 의 이름과 버전을 적는다.
- @angular/common : ng2 의 기본 모듈
- @angular/compiler : ng2 의 template 을 위해 필요한 모듈
- @angular/core : ng2 의 기본 모듈
- @angular/forms : ng2 로 form 을 다루기 위한 모듈
- @angular/http : 비동기 서버 통신을 위한 모듈
- @angular/platform-browser : ng2 를 브라우저로 표시하기 위한 모듈
- @angular/platform-browser-dynamic : ng2 를 브라우저로 표시하기 위한 모듈
- @angular/router : 라우팅 기능 모듈
- core-js : js 의 최신 문법을 사용하기 위함
- reflect-metadata : metadata 문법을 사용하기 위함
- rxjs : observables 기능을 사용하기 위함
- zone.js : async 함수의 도착 지점을 알기 위함
ng2 의 기능들과 그 기능을 하위버전 브라우저에서도 사용하기 위한 라이브러리들을 포함했다.