ES모듈 전환 질문
제가 지금까지 이해한 바로는, esModuleInterop를 true로 설정하면 CommonJS모듈에서 내보내기 한 것들을 ES모듈의 내보내기 한 것으로 변환 시켜주는데 CommonJS에선 module.exports나 exports.변수 나 둘 다 하나의 객체로 담겨져 보내지니 ES모듈의 내보내기로 전환될 땐 무조건 Default Export 방식으로 전환되는 것으로 알고있습니다. 그래서 ES모듈로 가져오는 것으로 바꿔줄 때에도 그냥 Default Export 를 가져오는 방식으로만 변환해주면 되는 것으로 아는데
const { Strategy: LocalStrategy } = require("passport-local");
이 부분을
import { Strategy as LocalStrategy } from "passport-local"
이렇게 Named Export를 가져오는 방식으로 바꾸는 것이 가능한 게 이해가 되질 않습니다.
import Strategy as from "passport-local" 이렇게 가져와서 따로 구조분해를 해야 하는 것이 아닌가요?
답변 1
1
import { Strategy as LocalStrategy } from "passport-local"
이거 자체가 module.exports를 가져와서 구조분해를 했다는 의미입니다
0
passport 모듈은
import passport from "passport"; 이렇게 가져왔고 passport-local 모듈은
import { Strategy as LocalStrategy } from "passport-local";이렇게 가져왔는데 왜 다르게 가져오는 것인지 아직 이해가 되지 않습니다.
모듈의 소스코드를 봐서 어떻게 CommonJS내보내기를 했는지를 봐야 하는 것인지, @types의 소스코드를 봐서 어떻게 ES내보내기를 했는지를 봐야 하는 것인지, 아니면 가져오는 방식에 맞춰서 타입스크립트가 알아서 변환시켜주는 것인지 모르겠는데 뭘 보고 판단해야 하나요?
1
import passport는 module.exports = passport를 가져온 것이고
import { Strategy }는 exports.Strategy나 module.exports.Strategy를 가져온 것이죠.
깃헙 질문
0
82
2
강의 1-1 수업노트의 로드맵 링크가 작동하지 않습니다.
0
76
1
aws - lightsail 이용 관련
0
58
1
4강 http 서버 만들때 ESM방식으로 해도 될까요?
0
81
2
모듈 사용 시 단점이 있나요?
0
81
1
node.js 버전 및 typescript 적용 문의
0
95
2
12.7. 방장기능(강퇴) 질문드립니다.
0
80
2
12.7 socket.js코드 그대로 뱃겨서 했는데, socket.request.session.color가안나오네요
0
69
1
12.7 코드 그대로 뱃겨서 햇는데 스샷같이 오류가뜹니다.
0
75
2
12.7.1스스로 해보기 질문되나요
0
95
3
시퀄라이즈 실습하기 질문드립니다.
0
196
9
<7-5. 시퀄라이즈 사용하기>수업 질문 드립니다.
0
97
2
크롬에서 user id를 인풋에 입력하고 등록하면 404 에러처리 페이지가 뜹니다.
0
113
2
구매 결제관련 질문입니다 !
0
123
1
다수의 supertest 가 실행될 때 force:true로 인한 DB 초기화 문제
0
133
2
node 설치 방법이 전혀다르게 바뀐것 같습니다.
0
152
2
12강 깃허브에 있는 12.7 chat.html 복붙했는데 css오류
0
122
2
무료/프리미엄 동시 소유 시 질문
0
117
1
비주얼 스튜디오 코드로 계속 진행해도 괜찮을까요?
0
135
2
10강 cors에러 localhost:4000으로 접속했을때 에러
1
159
2
webstorm 해결할 수 없는 변수 문제
0
155
2
혹시 몽고DB 쓸거면 MySQL 강의 스킵해도 되나요?
0
149
2
LightSail 실행 중 오류 질문드립니다!
0
204
2
RedisStore 사용법 질문
0
133
2





