인프런 커뮤니티 질문&답변

roberto park님의 프로필 이미지

작성한 질문수

실무에 바로 적용하는 스토리북과 UI 테스트

[추가] 피그마 플러그인을 활용한 tailwind 개발

npm 배포이후 타 패키지에서 npm 패키지를 임포트하면 오류가 나옵니다

해결된 질문

24.05.25 19:33 작성

·

421

3

npm 배포이후
vite 를 사용하지않은 패키지에서
해당 DS npm 을 설치하고
사용하면 위와같은 오류가 나옵니다


먼가 강의대로 하면 Vite 로 이뤄진 패키지만 사용이 가능한걸까요

답변 5

1

roberto park님의 프로필 이미지
roberto park
질문자

2024. 05. 26. 00:47

감사합니다 일단 말씀해 주신내용 하나하나 디버깅 해보겠습니다 감사합니다

1

강병진님의 프로필 이미지
강병진
지식공유자

2024. 05. 25. 20:39

roberto님 안녕하세요!

그렇지 않습니다. 다른분들의 질문을 보시면 오히려 윈도우에서 vite호환성이 떨어져서 create-react-app으로 진행하시는 분들도 있습니다.

 

스크린샷으로 올려주신 에러를 통해 추측하기로는 TypeScript 설정이 제대로 되지 않은 것 같습니다. Module parse failed: the keyword 'interface' is reversed 에러는 interface를 사용할 수 없는 파일에서 interface라는 키워드가 사용되었을 때 나타나는데요,

 

디버깅을 위해

  1. 파일 extension이 .ts 또는 .tsx가 맞는지 확인해주시고

  2. package.json에 TypeScript와 관련된 패키지들이 있는지 확인해주시고

  3. .eslint 에서 TypeScript를 사용할 수 있게 설정이 되어있는지 확인해주시고

  4. tsconfig.json 을 확인해봐야합니다.

2, 3번 항목은 디버깅이 어려우시면 전체 코드를 올려주시면 저도 확인해보겠습니다

roberto park님의 프로필 이미지
roberto park
질문자

2024. 05. 26. 13:36

npm publish 한패키지

tsconfig.json>


.eslintrc.cjs >


package.json>

publish 한 npm 을 가져다쓴 패키지는
npx create-next-app 으로 만든 기본 페이지 입니다
뭔가 에러 의심사항이 있을까요
디버깅중인데 잘안되네요 감사드립니다

0

강병진님의 프로필 이미지
강병진
지식공유자

2024. 06. 12. 21:40

roberto님 안녕하세요! 해당 부분 다시 촬영해서 업데이트했습니다. 오류를 제보해주셔서 다시 한번 감사드립니다!

0

roberto park님의 프로필 이미지
roberto park
질문자

2024. 05. 28. 09:48

너무 감사드립니다 디버깅 하며 npm 배포 과정에 대해 심도 있게 확인할수 있었습니다! 좋은기회가 됬습니다 무한감사

강병진님의 프로필 이미지
강병진
지식공유자

2024. 05. 28. 15:37

답변 감사합니다! TMI지만 제가 해외출장이 있어서 다녀오자마자 바로 촬영해서 6월중에 업데이트 할 예정입니다! 강의소식과 여기에 답변으로 공유드릴게요. 경험을 공유해주셔서 저도 감사합니다~

0

roberto park님의 프로필 이미지
roberto park
질문자

2024. 05. 26. 12:50

요건 좀더 궁금한데요
npm publish 를 하게되면 빌드가 일어나고
빌드 과정에서 트랜스파일링이 일어나면
타입스크립트가 자바스크립트로 변환되는것같은데
그럼 npm 에 올려진 패키지를 가져다 쓰는곳에선
자바스크립트를 쓰게 되는건가요 ?
아니면 가져다 쓸떄 타입스크립트로 다시변환이 되는걸까요?

재 생각에 오류가 있다면 피드백 부탁드립니다
정말 감사합니다

강병진님의 프로필 이미지
강병진
지식공유자

2024. 05. 27. 22:55

roberto님 안녕하세요! 질문에 대한 답변 드립니다


npm publish 를 하게되면 빌드가 일어나고
빌드 과정에서 트랜스파일링이 일어나면
타입스크립트가 자바스크립트로 변환되는것같은데
:

  • 맞습니다. npm publish를 하기 전에 빌드 과정이 실행되며, 이 과정에서 TypeScript 파일들이 JavaScript 파일들로 트랜스파일됩니다. 이는 npm에 올려진 패키지가 JavaScript 파일들로 구성된다는 것을 의미합니다.

     

그럼 npm 에 올려진 패키지를 가져다 쓰는곳에선
자바스크립트를 쓰게 되는건가요
:

  • npm에 올려진 패키지는 JavaScript 파일들로 구성되어 있기 때문에, 이 패키지를 사용하는 곳에서는 JavaScript 파일들을 사용하게 됩니다. TypeScript는 트랜스파일된 결과물인 JavaScript 파일로 변환되므로, 최종 소비자는 JavaScript를 사용하게 됩니다.

  • 여기는 제가 경험하지 못한 부분이었는데, roberto님께서 마주하신 문제는 빌드과정에서 npm으로 배포된 패키지가 자바스크립트로 변환되지 않아서 발생하는 문제입니다

    • 저도 create-next-app 으로 프로젝트를 실시하고 강의에서 사용한 패키지를 설치하니 에러가 발생하네요

    • tsc를 사용해서 빌드하면 JavaScript로 변환이 되어야하는데, 트랜스파일이 정상적으로 되지않아 npm에 TypeScript가 그대로 올라간 것 같습니다.

    • Next.js는 npm 패키지는 JavaScript로 parsing하려고 하는데, 코드가 TypeScript라서 발생한 문제인 것 같습니다

아니면 가져다 쓸떄 타입스크립트로 다시변환이 되는걸까요?

  • Next.js의 경우 d.ts를 활용할 수 있도록 npm 패키지를 배포해야 합니다

     

  • 타입을 활용하려면 d.ts를 활용하는 식으로 진행해야하는데 해당 부분이 누락되었네요

    • 이 부분은 제가 에러를 확인하고 강의를 추가촬영해서 업로드하고 공지를 드리도록 하겠습니다.