✏️기록하는 즐거움
article thumbnail
Published 2022. 12. 15. 15:30
[JavaScript] .js vs .mjs Face-to-Error
반응형

 

1. | 에러 발생 과정

.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 확장자를 이용해야 한다.
 

 

2. | .mjs가 뭔데?

script 태그에 type="module" 어트리뷰트를 사용하게 되면 로드된 자바스크립트 파일은 모듈로서 동작하게 된다.

ES6 모듈의 파일 확장자는 모듈임을 명확히 하기 위해 .mjs를 사용하도록 권장한다.

<html />
<script type="module" src="lib.mjs"></script> <script type="module" src="app.mjs"></script>

단, 구형 브라우저는 ES6 모듈을 지원하지 않고, 브라우저의 ES6 모듈 기능을 사용하더라도 트랜스파일링이나 번들링이 필요하기 때문에 브라우저가 지원하는 ES6 모듈 기능보다는 Webpack 등의 모듈 번들러를  주로 사용하기 때문에 별도로 설정할 일이 없다.

 

3. | 에러 해결 방법 1. package.json

<javascript />
// package.json ... "type": "module" ...

package.json에 "type": "module"을 추가하기

 

4. | 에러 해결 방법 2. .mjs 확장자

export할 js 파일의 확장자를 .js ➡️ .mjs로 변경

 

5. | Refernece

 

Module | PoiemaWeb

모듈이란 애플리케이션을 구성하는 개별적 요소로서 재사용 가능한 코드 조각을 말한다. 모듈은 세부 사항을 캡슐화하고 공개가 필요한 API만을 외부에 노출한다. ES6 모듈은 단 두 개의 키워드 e

poiemaweb.com

 

반응형
profile

✏️기록하는 즐거움

@nor_coding

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