개발관련/other

Node.js "Cannot find module"오류 해결방법

Rateye 2021. 10. 8. 10:36
728x90
반응형
질문 : Node.js를 사용하여 "모듈을 찾을 수 없음"오류를 해결하려면 어떻게해야합니까?

GitHub에서 모듈을 풀다운하고 지침에 따라 빌드 한 후 다음을 사용하여 기존 프로젝트로 가져옵니다.

> npm install ../faye

이것은 트릭을 수행하는 것으로 보입니다.

> npm list
/home/dave/src/server
└─┬ faye@0.7.1
  ├── cookiejar@1.3.0
  ├── hiredis@0.1.13
  └── redis@0.7.1

그러나 Node.js는 모듈을 찾을 수 없습니다.

> node app.js
node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick
              ^
Error: Cannot find module 'faye'
    at Function._resolveFilename (module.js:334:11)
    at Function._load (module.js:279:25)
    at Module.require (module.js:357:17)
    at require (module.js:368:17)
    at Object.<anonymous> (/home/dave/src/server/app.js:2:12)
    at Module._compile (module.js:432:26)
    at Object..js (module.js:450:10)
    at Module.load (module.js:351:31)
    at Function._load (module.js:310:12)
    at Array.0 (module.js:470:10)

나는 여기서 무슨 일이 일어나고 있는지 정말로 이해하고 싶지만 다음에 어디를 볼지에 대해서는 약간의 손실이 있습니다. 어떤 제안?

답변

npm install 사용 node_modules 라는 하위 디렉토리)에만 모듈이 설치됩니다. app.js가 home/dave/src/server/ 있습니까? 그렇지 않고 모든 디렉토리에서 모듈을 사용하려면 npm install -g 사용하여 전역 적으로 설치해야합니다.

일반적으로 대부분의 패키지를 로컬에 설치하여 프로젝트 코드와 함께 체크인합니다.

업데이트 (2019 년 8 월) :

요즘에는 npm이 node_modules 디렉토리를 수정할 때 자동으로 생성되는 package-lock.json 파일을 사용할 수 있습니다. package-lock.json 은 현재 사용중인 node_modules의 정확한 버전을 추적하므로 패키지 체크인을 생략 할 수 있습니다. package.json 대신 package-lock.json 에서 패키지를 설치하려면 npm ci 명령을 사용하십시오.

업데이트 (2016 년 3 월) :

나는 내 응답, 특히 내 코드가 의존하는 패키지를 체크인하는 것에 대해 많은 결함을 받았습니다. 며칠 전 누군가가 React, Babel 및 그 밖의 모든 것을 망가 뜨린 모든 패키지 (https://kodfabrik.com/journal/i-ve-just-liberated-my-modules)를 게시 취소했습니다. 이제 프로덕션 코드가있는 경우 실제로 종속성을 유지하는 NPM에 의존 할 수 없다는 것이 분명해졌습니다.

출처 : https://stackoverflow.com/questions/9023672/how-do-i-resolve-cannot-find-module-error-using-node-js
728x90
반응형