질문 : 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
'개발관련 > other' 카테고리의 다른 글
함수 설계 f (f (n)) == -n (0) | 2021.10.08 |
---|---|
Bash 셸 스크립트에서 입력 인수가 있는지 확인 (0) | 2021.10.08 |
JSON API 응답 형식에 대한 모범 사례 (0) | 2021.10.07 |
일반적으로 Node.js에서 10,000 개의 동시 요청을 처리하는 방법 (0) | 2021.10.07 |
Json.net으로 직렬화 할 때 속성 이름을 변경하는 방법 (0) | 2021.10.07 |