브라우저나 Node.js 버전에 대응하여 내부에서 처리해야 할 작업이 다를 때, 설정에 사용한다.
— 명시적으로 브라우저나 버전을 특정할 수 있고, 브라우저 통계를 사용하여 설정 가능.
(통계 정보는 API 서버 아니고, caniuse-lite라는 프로젝트 정적 데이터 이용, 빌드할때 가져옴)
⇒ 브라우저 환경을 정의하여 바벨이나 프레임워크 등에서 폴리필 하는데 사용함.
쿼리 문법을 사용하여 브라우저를 정의한다.
ie 10 //인터넷익스플로러(IE) 버전 10을 지원
ie 6-9 //인터넷익스플로러(IE) 버전 6~9를 지원
not ie 6-10//인터넷익스플로러(IE) 버전 6~9를 지원안함
not ie <= 10 ////인터넷익스플로러(IE) 버전 10 미만은 지원 안함
> 2% //전 세계 점유율 2% 이상의 브라우저만 지원
> 2% in KR // 한국(해당 국가코드 나라)에서는 전 세계 점유율 2% 이상의 브라우저만 지원
> 2% in alt-AS //아시아에서는 전 세계 점유율 2% 이상의 브라우저만 지원
last 2 Chrome versions //최근 2개 버전의 Chrome 브라우저를 선택
last 2 Firefox versions //최근 2개 버전의 Firefox 브라우저를 선택
not dead // 지원이 중단된 브라우저 지원 안함
조합해서 사용가능
> 1%
last 2 versions
not ie <= 10
.browserslistrc
파일안에 정의package.json
파일에browserslist
키를 사용해 정의스크립트를 끊임없이 진화하는 언어라서 새로운 제안(proposal)이 정기적으로 등록되고 가치 있다고 판단되는 제안은 https://tc39.github.io/ecma262/ 에 등록 된 후, 명세서에 올라오기도 한다.
⇒ 새로운 문법이나 내장 함수의 정의가 지속적으로 추가된다.
변경된 표준을 준수하도록 트랜스파일러 등을 통해 변경된 표준을 준수 할 수 있게 하는 것을 폴리필(poly fill) 이라고 부른다.
⇒ 구현이 누락된 새로운 기능을 매꾸는 (fill in) 역할을 수행