파크로그

webpack + babel-loader 를 사용하던 중, 위와같은 에러메세지 발생

 

해결

.babelrc 에 preset-env 옵션으로 "modules" : "cjs" 추가

{
  "presets": [
    [
      "@babel/preset-env",
      {
        "useBuiltIns": "usage",
        "modules": "cjs",
        "corejs": { "version": 3, "proposals": true }
      }
    ],
    ["@babel/preset-react", { "runtime": "automatic" }]
  ]
}

- cjs 는 commonjs 와 같은 것으로, 바벨이 ES Module 코드를 CommonJS 모듈의 문법으로 변환하여 두 모듈을 같이 사용할 수 있도록 함.

- 바벨은 _interopRequireDefault 라는 함수를 통해서 이와 같은 로직을 수행

- 플러그인으로 @babel/plugin-transform-modules-commonjs 를 지원하며, preset-env 사용시 "modules" : "cjs" 옵션을 주면 플러그인이 추가됨

profile

파크로그

@파크park

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!