[npm] NPM은 모듈 종속성을 설치하지 않습니다

이것은 package.json부모 프로젝트에 포함시키는 모듈에 대한 것입니다.

{
  "version": "0.0.1",
  "name": "module-name",
  "dependencies": {
    "express": "3.3.4",
    "grunt": "0.4.1",
    "grunt-contrib-compass": "0.4.0",
    "grunt-contrib-copy": "0.4.1",
    "grunt-contrib-cssmin": "0.4.1",
    "grunt-contrib-jshint": "0.6.3",
    "grunt-contrib-requirejs": "0.4.1",
    "grunt-contrib-uglify": "0.2.2",
    "grunt-contrib-watch": "0.5.1",
    "grunt-express-server": "0.4.1",
    "grunt-karma": "0.4.5",
    "grunt-regex-replace": "0.2.5",
    "request": "2.25.0"
  },
  "scripts": {
    "postinstall": "grunt install"
  }
}

주목해야 할 것은이 모듈은 개인 저장소에 포함되어 있으며 다음 package.json과 같이 부모에 포함시킵니다 ."module-name": "git+ssh://git@myserver:user/module-name.git"



답변

꽤 오랫동안 존재했지만 아직 해결 방법이없는 버그가 발생한 것 같습니다. 이 경우 npm 저장소에 공개 된 몇 가지 문제가 있습니다.

첫 번째 사람들은 시도 할 수있는 몇 가지 해결 방법을 나열합니다.

의존성을 첫 번째 수준의 종속 자로 명시 적으로 나열하는 대안 솔루션이 있습니다 (약간의 해킹). 이를 위해서는 목록을 유지해야하지만 실제로는 매우 드물게 수행해야합니다.


답변

전체 node_modules폴더를 제거 하고 다시 설치 하면 매우 비슷한 문제가 발생 했습니다. IT 크라우드 쇼 에서이 요령을 배웠습니다 !

rm -rf node_modules
npm install


답변

Windows 컴퓨터를 사용하고 있습니다.

  1. node_modules 폴더를 삭제했습니다.
  2. 어떻게 든 package.lock.json 파일이 생성되고 있습니다. 그 파일을 삭제했습니다.
  3. 그런 다음 npm을 설치하십시오.
  4. 깨끗한 빌드.
  5. 운영.

답변

이 코드를 상속 한 경우 종속성 및 버전이 잠겨 있고 ./npm-shrinkwrap.json 파일이있을 수 있습니다.

해당 파일에 종속성이 나열되지 않으면 npm install명령으로 설치되지 않습니다 .

패키지를 수동으로 설치 한 다음 실행 npm shrinkwrap하여 shrinkwrap 파일을 업데이트해야합니다.


답변

package.json파일이와 같은 디렉토리에 있지 않은 문제에 직면하고있는 것 같습니다 Gruntfile.js. grunt xxx명령 을 실행할 때 다음 과 같은 메시지가 표시됩니다.

Local Npm module "xxx" not found. Is it installed?

현재 해결책은 다음과 같습니다.

  • Gruntfile.js와 동일한 디렉토리에 package.json을 작성하십시오.
  • 그런트 프로젝트에 필요한 모듈 정의
  • npm install로컬로로드하기 위해 실행
  • 이제 필요한 grunt 명령이 작동해야합니다.

IMHO, 우리는 부모 npm 모듈 (예 : 같은 프로젝트 내의 부모 디렉토리에있는 package.json)에서로드 된 grunt resolve 모듈을 가질 수 없다는 것은 슬픈 일입니다. 논의는 여기 가 피할로드 “글로벌”모듈로 이루어 졌음을 나타냅니다 것 같다하지만 우리가 원하는 것은로드 대신 “내 프로젝트”모듈에서 생각합니다.


답변

이전 버전의 노드에서는 OP가 true 일 수 있습니다. 그러나 노드 4.4.1에서도 마찬가지입니다.

사용중인 노드 버전과 잘 연결되어있을 수 있습니다. 최신 버전으로 업그레이드하십시오. 특정 종속성은 노드 버전과 호환되지 않는 경우 전 이적으로로드되지 않습니다.

나는 이것을 실행하여 이것을 발견했다 npm update.

최신 버전으로 업그레이드 한 후 (4.4-> 5.9); 이 문제가 해결되었습니다.


답변

내 경우에는 node_modules및 을 제거하는 데 도움이되었습니다 package-lock.json.

그런 다음으로 모든 것을 다시 설치하십시오 npm install.