webpack 과 babel 을 활용하여 ie 11 에서 사용 할 수 있는 script 를 간단히 구성해 보겠습니다. ( windows 기준 )
가장 먼저 window command 창을 뛰웁니다.
mkdir 로 자신이 구성할 directory 를 구성합니다.
이후 아래와 같은 내용을 순서대로 구성합니다.
npm init -y
- 특정 directroy 에 node를 활용하여 프로젝트를 수행 할 수 있는 구조를 만듭니다.
https://webpack.js.org/guides/getting-started 사이트의 초 간단 예제를 약간 변형합니다.
webpack 관련 모듈을 개발용으로 설치합니다.
npm i -D webpack webpack-cli 혹은 npm install webpack webpack-cli --save-dev 라고
입력합니다. ( 둘은 같은 역활을 수행합니다. )
source directory 를 구성한 후 ( mkdir src )
해당 directory 에 다음과 같은 2개의 파일을 생성합니다.
- /src/fnInit.js
- /src/fnClick.js
root directory 에 webpack.config.js 파일을 다음과 같이 생성합니다.
-/webpack.config.js
/package.json
build : webpack 을 기록하여 npm run build 를 수행합니다.
결과를 확인하면 chrome 에서는 정상적으로 index.html 이 로딩되지만, ie 에서는
페이지가 나타나지 않습니다. 이것을 해결하기 위해서 babel 을 설정 합니다.
babel site 는 https://babeljs.io/docs/en/usage 에서 사용법을 확인 할 수 있습니다.
npm install --save-dev @babel/core @babel/cli @babel/preset-env
npm i @babel/runtime @babel/plugin-transform-runtime -D
npm install --save-dev @babel/runtime-corejs3
npm i -D babel-loader
npm i -D core-js@3
위 내용으로 babel 관련한 모듈을 설치합니다. 다음은 babel.config.json 입니다.
/babel.config.json
다시 webpack.config.js 파일을 아래와 같이 수정합니다.
/webpack.config.js
target 으로 es5 형식으로 변환하고, babel의 변환은 babel.config.json 을 따르도록
구성합니다. Babel 에서 제공하는 문서에는 rootMode upward 의 경우 각 package
단위로 하위의 디렉토리를 따라가면서 각기 다른 설정이 가능하다고 기재되어 있습니다.
( https://babeljs.io/docs/en/config-files 문서 참조 )
babel.config.json 파일은 babel 이 설정을 찾는 기본 파일 이름 입니다.
babel 에서 제공하는 문서에는 다음과 같이 기재되어 있습니다.
rootMode
Type: "root" | "upward" | "upward-optional"
Default: "root"
Note: babel.config.json is supported from Babel 7.8.0. In older Babel 7 versions, only babel.config.js is supported.
rootMode 에 따라 약간의 차이가 있는데 root 의 경우 configFile 을 지정할 수 있지만,
upward 의 경우 package.json 이 있는 위치에 babel 의 기본 config file 이 있어야 합니다.
/src/fnClick.js
화살표 함수로 변경 후 npm run build 로 구성하여도 ie 11 에서 동작합니다.
댓글 없음:
댓글 쓰기