내 node_modules에는 내 package.json의 종속성에 나열되지 않은 패키지가 있으므로 해당 패키지가 내 종속성의 종속성이라고 추측합니다. 이것을 어떻게 확인할 수 있습니까? 내 node_modules 디렉토리에 불필요한 패키지가 없는지 확인하고 싶습니다.node_modules 디렉토리에서 불필요한 패키지를 확인하려면 어떻게합니까?
답변
는 간단한 옵션은 테이블 플립입니다 : 완전히 node_modules
디렉토리를 제거하고 다시 만드는 것이에 npm install
를 실행합니다.
원하지 않는다면 depcheck과 같이 @ sagar-gopale과 같이 의존성을 검사하는 도구를 사용해 볼 수 있습니다.
관련 항목 : npm -v
을 실행하여 npm v2 또는 v3을 실행 중인지 확인하십시오. @cartant가 대답하는 것처럼 v3을 사용하면 node_modules
디렉토리가 최대한 평평 해 지므로 다른 모듈 (npm v2와 함께 설치 될 때)의 하위 디렉토리로 표시되는 항목이 node_modules
최상위 레벨에 나타납니다. 이것이 예상보다 많은 모듈을 보는 이유 일 수 있습니다.
NPM 3을 사용하는 경우 NPM 3이 종속성 계층을 평탄하게 만들기 때문에 node_modules
디렉토리에 예상하지 못한 많은 수의 모듈이 표시 될 수 있습니다.
사용중인 버전에 따라 npm list
명령을 실행하면 NPM은 불필요한 불필요한 모듈을 강조 표시해야합니다.
이 패키지를 체크 아웃하십시오. 당신의 의존성 목록을 다시 설치하는 데 시간이 너무 오래 걸릴하지 않을 경우 https://www.npmjs.com/package/depcheck
패키지는 다른 패키지를 요구할 수 있기 때문에 node_modules 폴더에 packages.json 파일에 존재하지 않는 패키지가 있다고해서 그것이 지정된 패키지 중 하나에 필요하지 않다는 것을 의미하지는 않습니다.
솔루션의 루트 디렉토리에서 npm prune
명령을 실행하면 종속성 트리를 읽고 더 이상 필요하지 않은 패키지를 제거합니다.
나는 table-flipping의 첫 번째 옵션을 수행했다. 그러나 dep 체크를 실행했을 때 여전히 사용하고있는 "사용되지 않는 의존성"을 많이 보여준다. 이것의 기초가되는 depcheck은 무엇입니까? 나는'npm install -g depcheck react jsx'도 만들었지 만, 그런 종류의 앱을 만들고 있기 때문에,하지만 es6을 사용한다면, 내가 포함 시켰습니까? 무엇을 의미하는 구문 지원을 의미합니까? – stackjlei