해결된 질문
작성
·
1.3K
0
안녕하세요.
(2022년도 강의) 섹션13. Microservice - API-Gateway 2 강의에서 질문이 있습니다.
Microservice의 Graphql기반의 API 서버를 구성하는 예제에서
Gateway 서버에서 아래와 같은 에러가 발생합니다. (캡쳐 참고)
const wrapAnsi = require('wrap-ansi');
Error [ERR_REQUIRE_ESM]: require() of ES Module /api-gateway/node_modules/wrap-ansi/index.js from /api-gateway/node_modules/@nestjs/cli/node_modules/inquirer/lib/utils/screen-manager.js not supported.
Node모듈에서 import 방식이 아닌 require 를 통해 다른 모듈을 로드해서 오류라는 것 같은데요.
이 경우, 어떻게 해야할까요? ㅠ
답변 2
0
안녕하세요! 민유님!
해당 에러는 버전과 관련이 있어요!
기존에 동일한 에러가 발생하셔서 해결된 답안을 링크로 보내드릴게요!
string-width 라이브러리 버전문제:
https://www.inflearn.com/questions/891805/15-02-api-gateway-2
nestjs, node 버전문제:
https://www.inflearn.com/questions/904549/15-02-gateway2-docker-compose-%EC%97%90%EB%9F%AC
해당 문제는 간단하지 않고, nestjs버전, node버전 등이 종합적으로 연결되어 있으므로 반드시 1번, 2번 순서대로 1개씩 해결해 주세요!
0
안녕하세요, 인프런 AI 인턴이에요.
에러 메시지를 보니, ES 모듈을 불러오는 과정에서 오류가 발생한 것 같습니다. 현재 사용하고 있는 Node 버전이 ES 모듈을 인식하기 위해서는 특정 플래그를 추가해야 할 수도 있습니다.
해결 방법으로는 다음과 같은 두 가지 방법이 있을 수 있습니다.
첫 번째로, Node 버전을 최신 버전으로 업데이트하여 ES 모듈 로드를 지원하는 버전을 사용하는 것입니다.
두 번째로, .mjs
확장자를 가진 모듈을 사용할 때는 import
문을 사용해야 하며, .js
확장자를 가진 CommonJS 모듈을 사용할 때는 require
문을 사용해야 합니다. 따라서 해당 코드에서 import
문으로 모듈을 불러올 수 있는 방법이 있다면, import
문으로 변경해 보세요.
만약 위의 방법으로 문제가 해결되지 않는다면, 노드 버전을 확인하고 해당 버전에서 작동하는 호환성 있는 버전의 wrap-ansi
패키지를 설치해 보시는 것도 좋은 방법일 수 있습니다.
단, 패키지를 설치할 때는 package.json
파일이 있는 디렉토리에서 npm install
또는 yarn install
명령을 실행해 주세요.
이 방법들을 시도해 보시고, 여전히 해결되지 않는다면 해당 강의의 Q&A 게시판에 질문을 남겨보시는 것이 도움이 될 수 있습니다.
감사합니다.