웹에 특화된 package management 서비스로 프로젝트의 .bowerrc 파일내에 기록된 directory 폴더에 웹 관련 라이브러리등을 다운로드하거나 버전을 관리할 수 있다.
bower는 node.js로 만들어진 도구 이므로 npm을 이용해서 설치하고 커맨드라인 명령어로 사용하기 때문에 글로벌로 설치한다. 정상적으로 설치가 되면 bower -v
로 버전정보를 확인할 수 있다.
npm install -g bower
bower는 bower.json에 선언된 라이브러리를 읽어서 설치할 수 있다. 파일이 존재하면 init 명령으로 초기 파일을 설치한다.
bower init
{
"name": "my-project",
"version": "1.0.0",
"main": "path/to/main.css",
"ignore": [
".jshintrc",
"**/*.txt"
],
"dependencies": {
"<name>": "<version>",
"<name>": "<folder>",
"<name>": "<package>"
},
"devDependencies": {
"<test-framework-name>": "<version>"
}
}
작성한 프로젝트를 bower에 배포할 것이 아니라면 dependencies와 devDependencies외이는 큰 의미는 없다.
{
"dependencies": {
"jquery": "~2.0.0"
},
"devDependencies": {
"qunit": "~1.11.0"
}
}
bower install 명령어를 이용하면 bower.json파일에 선언된 라이브러리들을 읽게 된다. maven의 pom과 같다고 생각하면 쉬울 것이다. 라이브러리들을 추가하면서 bower.json에 dependencies 설정을 하고 싶으면 grunt처럼 –save명령어를 통해서 추가 할 수 있다.
bower install <package> --save (dependency에 추가) bower install <package> --save-dev (devDependencies에 추가)
bower install jquery#1.9.1
삭제할때는 uninstall을 사용한다. 실제로 디렉터리를 삭제시키는 것과 같다.
bower uninstall jquery
bower는 인터넷접속이 없어도 패키징을 받을 수 있게 로컬에 패키지들을 캐시해둔다.
Tip:bower install <package> --offline //offline에서 리스트들 받는다.
bower cache list // 현재 저장된 리스트들이다.
bower cache clean // 새로 캐시를 지운다.
bower list 혹은 bower ls로 현재 폴더 하위에 설치된 컴포넌트들의 목록을 확인할 수 있고 최신버전이 아닌 경우 옆에 최신버전이 표시된다.
HelloIonic D:\ongoingProjects\votee\votee\public ├─┬ angular-chart.js#1.1.1 extraneous │ ├── angular#1.5.9 (1.6.2-build.5246+sha.54a7caf available) │ └── chart.js#2.4.0 ├─┬ angular-google-maps#2.4.0 extraneous (2.4.1 available) │ ├── angular#1.5.9 (1.5.11 available, latest is 1.6.2-build.5246+sha.54a7caf) │ ├─┬ angular-simple-logger#0.1.7 │ │ └── angular#1.5.9 (1.6.2-build.5246+sha.54a7caf available) │ ├── google-maps-utility-library-v3-infobox#1.1.14 │ ├── google-maps-utility-library-v3-keydragzoom#2.0.9 │ ├── google-maps-utility-library-v3-markerwithlabel#1.1.10 │ ├── js-rich-marker#4b6f4df749 │ ├── lodash#4.17.2 (4.17.4 available) │ └── markerclustererplus#2.1.4 ...
특정 컴포넌트를 검색할 수 있다. 패키지명으로 검색하려면 lookup을 사용한다. 일치하는 패키지명이 없으면 비슷한 패키지를 추천한다.
bower search d3 bower lookup d3 bower info jquery
정보 확인은 info를 사용할 수 있다.
bower에 전체적으로 적용할 설정을 사용자의 홈디렉토리에 .bowerrc 파일을 만들어서 지정할 수 있다. .bowerrc파일은 다음과 같은 JSON 형식이다.
{
"directory": "bower_components",
"endpoint": "https://bower.mycompany.com",
"json": "bower.json",
"searchpath": [
"https://bower.herokuapp.com"
],
"shorthand_resolver": "git://example.com/{{{ organization }}}/{{{ package }}}.git"
}
"어떤 것을 완전히 알려거든 그것을 다른 이에게 가르쳐라."
- Tryon Edwards -