본문 바로가기

Backend/NodeJS

winston이란? (package.json에 nest-winston 모듈 있는데 모듈 없다고 에러뜸 해결)

winston 모듈이 없다고 뜨길래 package.json 파일을 살펴보니 dependencies에 잘 깔려만 있었다. 

"nest-winston": "^1.9.3",

그런데 왜 인식을 하지 못했던걸까? 

 

합리적 의심 1 : package.json 파일에 해당 라이브러리가 명시되어있지만, 실제로 해당 라이브러리가 설치되지 않았을 수도 있음 

-> 프로젝트 터미널에서 npm install OR yarn install로 의존성 설치 

합리적 의심 2 : 프로젝트에 설치된 다른 라이브러리나 패키지와의 버전 충돌 

-> 의존성 버전 조정 OR npm ls OR yarn list를 통해 의존성 트리 확인 

합리적 의심 3 : 빌드과정에 없음 

-> 빌드 스크립트가 모듈을 포함하고 있는지 확인 

합리적 의심 4 : 캐싱 문제 

-> 이전에 설치한 의존성이 캐시되어 업데이트된 정보를 반영하지 않는 경우. npm cache clean OR yarn cache clean 으로 캐시 지우고 다시 실행 

 

내가 해결한 방법은 1번이 아니었을까 싶다. 해당 문제는 npm i nest-winston 을 통해 해결되었다. 

https://www.npmjs.com/package/nest-winston

 

nest-winston

A Nest module wrapper for winston. Latest version: 1.9.3, last published: 2 months ago. Start using nest-winston in your project by running `npm i nest-winston`. There are 218 other projects in the npm registry using nest-winston.

www.npmjs.com

 

그리고, winston이란 logger의 역할로 실제 서버를 운영할때 console.log와 console.error을 대체하기 위한 모듈이라고 한다. 

에러 고치면서 덕분에 알게되었다!