더 빠른 웹 개발을 위한 최신 프론트엔드 빌드 도구로, 기존의 webpack, Rollup, Parcel과 같은 번들러와 다르게 자바스크립트의 ES6모듈 방식을 이용해 파일을 다시 빌드하지 않고 변경사항을 브라우저에 즉시 적용을 할 수 있다.
번들 없는 개발이라고도 하며 개발 파일을 브라우저에 전달하는 방식으로 진행이 된다.
NPM 패키지는 대부분 웹에서 직접 실행할 수 없는 CommonJS를 사용한다. 브라우저에서 직접 실행할 수 있는 ESM import / export 구문을 사용하여 애플리케이션을 작성하더라도 NPM 패키지를 가져올 때 번들러가 동작해야 한다.
반면 전체 애플리케이션을 번들로 묶는 대신 의존성을 별도로 처리한다.
- Snowpack이 애플리케이션을 스캔
- node_modules 폴더에 설치된 의존성 모듈을 확인
- 모든 의존성 모듈을 개별 Javascript 파일로 변환한다.
- 변환된 각 파일은 브라우저에서 직접 실행하고 ESM import 구문을 통해 가져온다.
- 의존성 모듈은 따로 변경하지 않는 이상, 변경사항이 없으니 다시 빌드할 필요가 없다.