babel-preset-env가 미치는 영향

YOUNGJOO-YOON·2021년 5월 21일
0

react with webpack 5

목록 보기
30/37

babel-preset-env를 사용중이라면 import ... from ES6 모듈 구문을 CommonJS 모듈인 require로 변경시켜버린다.

이는 여러 브라우저에 대해 범용성이 늘어나긴 하지만 webpack의 tree shaking이나 import 구문의 이점인 module중 특정 부분만을 export하여 받아오는 등의 이점을 없애 코드를 방대하게 늘려버린다.

You're trying to use a CommonJS module from within your browser. This will not work.

How are you using them? When you write import ... from ... in ES6 Babel will transpile these calls to a module definition called CommonJS and since CommonJS isn't around in the browser you'll get an undefined error from require().

Furthermore, you're also trying to load RequireJS which uses a different module definition pattern called AMD, Asynchronous Module Definition, and will not take care of the require calls for you. You can wrap them in RequireJS specific calls.

If you want to use CommonJS modules in your code base you need to first bundle them with either Browserify or webpack. The two tools will transform your require calls to some glue magic that you can use within the browser.

But in your specific case, if you remove the import calls and just let the browser take care of and attach the classes you've created to the window object your code should work.
출처:
stackOverFlow

profile
이 블로그의 글은 제 생각을 정리한 글과 인터넷 어딘가에서 배운 것을 정리한 글입니다. 출처는 되도록 남기도록 하겠습니다. 수정 및 건의 오류 등이 있으면 언제든지 댓글 부탁드립니다.

0개의 댓글