(node:24716) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.

henry·2024년 9월 13일

소스 코드를 실행했는데 아래 그림과 같은 에러가 출력.

이 오류는 Node.js에서 ES 모듈(ESM)을 사용할 때 발생하는 일반적인 오류
오류 메시지에 따르면, import 구문을 사용할 수 없는 상황에서 import 구문을 사용했기 때문에 발생한 것


원인

  • CommonJS 모듈로 설정되어 있음: Node.js는 기본적으로 CommonJS 모듈 시스템을 사용.
  • ES 모듈(ESM)을 사용하려면 package.json 파일에 "type": "module"설정 필요.

import 대신 require를 사용해야 하는 경우
CommonJS 모듈에서는 import 대신 require 구문을 사용.


해결 방법

방법 1

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

{
  "type": "module"
}

방법 2

파일 확장자를 .mjs로 변경하기

ES 모듈을 사용할 파일의 확장자를 .mjs로 변경.
예를 들어, db.js 파일을 db.mjs로 변경.

방법 3

require 구문으로 변경하기 (CommonJS 방식 사용)

const mysql = require('mysql2/promise');

오류가 해결되었다.

0개의 댓글