항상 NPM 프로젝트에서 parcel-bundler
라는 것을 정확히 알아본 적 없이 오랜기간 사용해왔는데, 이번에는 이러한 bundler에 대해 정리해보며 각각의 차이점도 익혀두도록 하겠습니다!
우리가 사용하는 react, vue, typescript, sass 등이 웹에서 직접적으로 동작하지 않기 때문에 html, css, js로 변환하는 과정을 수행 (외부 패키지의 도움을 받아)
우리가 실제로 웹에서 보는 index.html은 dist/index.html 이다.
따라서 사용할 favicon을 dist 안으로 넣어줘야 하는데, dist 폴더는 parcel-bundler의 개발 서버 실행을 통해 새로 생성하고 지울수 있어야 하므로 직접 파일을 삽입하는 것은 지양해야 한다.
그럼 어떻게 할까?
해당 파일을 개발 서버를 열거나 제품화를 시킬 때 자동으로 넣어줄 수 있는 패키지를 사용할 수 있다. (사이트를 참고)
npm install -D parcel-plugin-static-files-copy
"staticFiles": {"staticPath": "static"}
추가
개발자 도구의 styles탭을 확인하다 보면 위와 같이 중앙선이 그어져있는 라인들을 확인할 수 있다.
이는 브라우저를 제작하는 vender사(구글, MS 등)들이 webkit 또는 ms 같은 접두사, 즉 공급 업체 접두사(Vender Prefix)를 붙여 시험적으로 브라우저에 적용한 내용이며,
표준기술이 동작할 수 없는 구형 브라우저의 경우 display: flex;
같은 표준기술은 동작되지 않고 접두사가 붙은 형태의 속성이 실제로 동작될 수 있다! (일종의 보험의 개념)
그럼, 이러한 공급 업체 접두사가 포함된 속성은 전부 외워서 사용해야 하느냐?
이 역시 패키지를 통해 자동으로 적용시킬 수 있다.
npm i -D postcss
npm i -D autoprefixer
"browserslist": ["> 1%", "last 2 versions"]
추가npm i -D @babel/core @babel/preset-env
module.exports = {presets: ['@babel/preset-env']}
"staticFiles": {"staticPath": "static"}
@babel/plugin-transform-runtime
사용 -> 나중에 더 알아보기