반응형
| 에러 발생 과정
.js 파일에서 export 키워드를 사용하니
SyntaxError: Unexpected token 'export' 에러가 발생했다.
ESLint를 사용하면 친절하게 해결 방법에 대해서 알려준다.
Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
ES 모듈인 export를 사용하려면 package.json에 type: module을 사용하거나, .mjs 확장자를 이용해야 한다.
| .mjs가 뭔데?
script 태그에 type="module" 어트리뷰트를 사용하게 되면 로드된 자바스크립트 파일은 모듈로서 동작하게 된다.
ES6 모듈의 파일 확장자는 모듈임을 명확히 하기 위해 .mjs를 사용하도록 권장한다.
<script type="module" src="lib.mjs"></script>
<script type="module" src="app.mjs"></script>
단, 구형 브라우저는 ES6 모듈을 지원하지 않고, 브라우저의 ES6 모듈 기능을 사용하더라도 트랜스파일링이나 번들링이 필요하기 때문에 브라우저가 지원하는 ES6 모듈 기능보다는 Webpack 등의 모듈 번들러를 주로 사용하기 때문에 별도로 설정할 일이 없다.
| 에러 해결 방법 1. package.json
// package.json
...
"type": "module"
...
package.json에 "type": "module"을 추가하기
| 에러 해결 방법 2. .mjs 확장자
export할 js 파일의 확장자를 .js ➡️ .mjs로 변경
| Refernece
Module | PoiemaWeb
모듈이란 애플리케이션을 구성하는 개별적 요소로서 재사용 가능한 코드 조각을 말한다. 모듈은 세부 사항을 캡슐화하고 공개가 필요한 API만을 외부에 노출한다. ES6 모듈은 단 두 개의 키워드 e
poiemaweb.com
반응형
'Face-to-Error' 카테고리의 다른 글
[Next-Auth] 새로고침 시 session을 사용한 부분에 깜빡임 현상 해결하기 (0) | 2025.01.21 |
---|---|
URL에 한글이 포함되면 왜 깨지는 걸까? (2) | 2025.01.17 |
[React] Netlify 배포 시 API Key 설정하기 (0) | 2022.10.14 |
[React] Cannot create a project named "xxx" because of npm naming restrictions: (0) | 2022.08.23 |
[React] style 적용 시 발생한 에러: The `style` prop expects a mapping from style properties to values, not a string. (0) | 2022.07.22 |