๋ณธ๋ฌธ์œผ๋กœ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ตœ์ข… ๋ฐฐํฌ๊นŒ์ง€ ์™„๋ฃŒํ–ˆ๋Š”๋ฐ, IE์™€ Safari์—์„œ javascript๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š์•„ ์‹œ์ž‘ํ•˜๊ธฐ ๋ฒ„ํŠผ์ด ๋ˆŒ๋ฆฌ์ง€ ์•Š์•˜๋‹ค.

 

๋ฌธ์ œ ์›์ธ

1. ์›นํŒฉ์—์„œ ๋ฐ”๋ฒจ ์„ค์ •๊ฐ’์œผ๋กœ ๋ฒˆ๋“ค๋งํ•  ๋•Œ target๊ฐ’์„ ๊ตฌ๋ฒ„์ „๊นŒ์ง€ ๋ช…์‹œํ•˜์ง€ ์•Š์•˜๋˜ ์ 

2. ์ •๊ทœํ‘œํ˜„์‹์„ ๋ฐ”๋ฒจ์ด es5์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•˜์ง€ ๋ชปํ–ˆ๋˜ ์ 

 

1๋ฒˆ ํ•ด๊ฒฐ์ฑ…

์„ธ ๊ฐ€์ง€ ํŒŒ์ผ์—์„œ ์ˆ˜์ •์ด ํ•„์š”ํ•˜๋‹ค.

 

1) .babelrc

{
  "presets": [
    [
      "@babel/preset-env",
      {
        "targets": "> 0.25%, not dead",
        "useBuiltIns": "entry",
        "corejs": 3,
        "debug": true
      }
    ]
  ],
  "plugins": [["@babel/plugin-transform-runtime", { "corejs": 3 }]]
}

targets๋ถ€๋ถ„์— ๋ช…์‹œ๋œ ์ฝ”๋“œ๋Š” ํ˜„์žฌ ์ ์œ ์œจ์ด 0.25%์ธ ์ด์ƒ์ธ ๋ธŒ๋ผ์šฐ์ €๋Š” ๋ชจ๋‘ ์ง€์›ํ•˜๊ฒŒ ๋ณ€ํ™˜ํ•˜๋ผ๋Š” ์ฝ”๋“œ๋‹ค.

 

2) webpack.config.js

module.exports = {
  entry: ["core-js/stable", "regenerator-runtime/runtime", ENTRY_FILE],
  target: ["web", "es5"],
};

 

3) package.json

{
"browserslist": "defaults"
}

 

2๋ฒˆ ํ•ด๊ฒฐ์ฑ…

์ •๊ทœ์‹ ๋ฆฌํ„ฐ๋Ÿด ๊ฐ์ฒด๋ฅผ ํ—ˆ์šฉํ•˜๋Š” RegExp ์ƒ์„ฑ์ž๊ฐ€ ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ง€์›๋˜๋Š” ๊ฒŒ ์•„๋‹ˆ์˜€๋‹ค.

๋‹ค๋ฅธ ์ •๊ทœํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ–ˆ๋‹ค.

 

๋ฐ˜์‘ํ˜•