기능 )
1. "코드스쿼드 블로그" 버튼 클릭시 포스팅 목록 ajax로 가져온다
2. 가져온 데이터 카드형식으로 뿌려준다. (제목 - 링크 추가)
3. 찜하기 클릭하면 내 찜 목록에 제목만 리스팅한다.
4. 찜하기 버튼 클릭시 취소로 토글된다
webpack / webpack-cli 설치
- 모듈 번들화 작업을 위해 webpack을 사용했다.
- webpack.config.js 파일로 webpack 번들화 작업시 환경설정을 해준다.
1) Node.js에서 path에 대한 경로 값을 가져와서 저장을 한다.
2) 환경설정을 object 타입으로 exports 한다.
- entry : budling할 파일의 정보(budling 시작시 기준 파일로, 해당 파일을 기준으로 DI를 확인하고 번들링한다.)
- output : bundle후에 나올 파일의 정보 (path는 파일경로, filename은 bundling한 파일 명)
- bundle과정은, entry로 설정한 기준 파일과 import 혹은 require로 연결한 하위 파일들의 관계를
dependency graph로 만들어 이것을 기준으로 bundling을 진행한다.
browser-sync / browser-sync-webpack-plugin 설치
- html, js 파일 수정 후 새로고침하기 귀찮을것 같아서 바로 브라우저에서 반영이 되는 sync browser 모듈을 설치했다.
- 일반적으로 react-create-app 등 과 같이 프로젝트 구조에 최상위 스크립트는 dist라는 디렉토리에 넣어서 사용된다기에
기준 디렉토리를 dist로 설정했다.
@babel/core / @babel/cli / @babel/preset-env / babel-loader 설치
- 설치하려는데 operation not permitted 에러가 계속 떠서 찾아봤더니 npm 권한문제였다.
vscode에서 설정으로 가서 remote.WSL.fileWatcher.polling 옵션을 true로 체크 해주면 잘 설치된다.
- @babel/core / @babel/cli 는 바벨을 이용하는데 기본 설치요소이고 @babel/preset-env 바벨의 환경설정 디펜던시 느낌이다.
- root경로에 '.babelrc' 파일을 생성 후,
{ "presets": ["@babel/preset-env"],
"plugins": ["@babel/plugin-proposal-class-properties"]
}
바벨 preset 과 설치한 plugins을 기재해준다.
- Babel의 역할 : js파일을 로드하여 ES6+ 코드를 ES5 코드로 트랜스파일링하는 작업 수행
** Webpack이 자바스크립트 파일을 번들링하기 전, Babel을 로드하여 ES6+ 코드를 ES5 코드로 트랜스파일링하는 작업을 실행하도록 설정하는 방법
1) babel-loader 설치 ( npm install --save-dev babel-loader )
2) package.json >> "scripts" 에서 명령어 설정 (webpack -w)
3) webpack.config.js >> module 설정
- test : .js 파일 (대상, 정규식으로 표현)
- include : 어느 경로에 있는 파일을 적용할 것인가
- exclude : 제외할 경로
- use : 사용할 모듈 정보
후기
환경설정 끝내고 강의속에 있는 블로그 주소를 이용해서 목록을 가져오는 실습을 진행하는데
블로그 주소가 없다더라 아무리 무료강의라지만 업데이트도 안되어있고 이런 사소한 부분에서 굉장히 실망스러웠다.
ajax를 모듈을 이용하는게 아닌 XMLHttpRequest 객체를 이용해서 하는 내용이었는데,
XMLHttpRequest 객체는 같은 도메인?이어야 데이터를 가져올수 있다고 했다.
원래는 개인 블로그 주소로 실습을 이어가려했지만 불가능하므로 여기서 중도하차해야 될 듯 싶다.
앞선 강의 중에서도 웹팩, 바벨 등 버전이 너무 많이 지나서 설치부터 다 헤쳐나갔기에 좀더 아쉬움이 남는다
출처 : https://poiemaweb.com/es6-babel-webpack-1
https://helloinyong.tistory.com/84?category=832495
https://www.inflearn.com/course/es6-%EA%B0%95%EC%A2%8C-%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8/
'Programming > JavaScript' 카테고리의 다른 글
[React / Node.js] react-router 리액트 라우터 알아보기 (0) | 2021.07.04 |
---|---|
[인프런] 레츠기릿 자바스크립트 / 끝말잇기, 셀프체크 쿵쿵따 만들기 (0) | 2021.06.30 |
[React / Node.js] 영화사이트 클론코딩 - 에러 해결, React, ES6 문법 알아보기 (0) | 2021.06.23 |
[인프런] 모던 자바스크립트(javascript) 개발을 위한 ES6 강좌 / 실습예제 2 - Destructuring 과 Set 을 활용한 로또 번호 생성기 (0) | 2021.06.21 |
[인프런] 모던 자바스크립트(javascript) 개발을 위한 ES6 강좌 / 실습 1 - 특정 문자열이 포함된 배열 만들어 반환하기 (0) | 2021.06.18 |