[node.js] npm이 연결된 노드 모듈을 나열하는 쉬운 방법은 무엇입니까?

npm link로컬 복사본에 대한 전역 모듈의 이름을 나열하고 로컬 경로도 나열 하는 명령을 찾고 있습니다.

사실, 목록 의 모든 전 세계적으로 설치된 모듈은 더 나은의를 가진 것 npm link‘D 것들 플래그 어떻게 든.



답변

node_modules디렉토리 내용을 나열 해 보셨습니까 (예 🙂 ls -l node_modules | grep ^l? 정상적인 심볼릭 링크입니다.

정말로 모든 심볼릭 링크 를 찾아야한다면 find / -type d -name "node_modules" 2>/dev/null | xargs -I{} find {} -type l -maxdepth 1 | xargs ls -l.


답변

전역 적으로 연결된 모든 모듈을 나열하려면 다음과 같이 작동합니다 ( https://docs.npmjs.com/cli/ls 문서 ) :

npm ls -g --depth=0 --link=true

그래도 먼저 내 컴퓨터에서 npm 버전을 업데이트해야했습니다.

npm install npm@latest -g


답변

구문 분석에 대한 더 나은 대안 lsfind다음과 같이 사용하는 것입니다.

find . -type l

-maxdepth 1첫 번째 디렉터리 수준 만 처리하는 데 사용할 수 있습니다 .

find . -maxdepth 1 -type l

-ls추가 정보를 위해 사용할 수 있습니다 .

예를 들어 npm 링크 된 노드 모듈을 찾으려면 다음을 수행하십시오.

find node_modules -maxdepth 1 -type l -ls

여기 기사를 분석하는 이유는 ls좋은 생각되지 않는다


답변

에서 멋진 컬러 출력을 원하면 npm list다음과 같이 할 수 있습니다.

\ls -F node_modules | sed -n 's/@$//p' | xargs npm ls -g --depth 0

내 현재 놀이터 디렉토리에 제공됩니다.

+-- color@0.11.1
+-- grunt@0.4.5
+-- http-server@0.8.5
+-- jsdom@8.0.2
+-- jsonfile@2.2.3
+-- underscore@1.8.3
+-- xmlserializer@0.3.3
`-- zombie@4.2.1 

몇 가지 가정을하지만 대부분의 경우 작동하거나 아래 설명에 쉽게 적용 할 수 있습니다.

  • 명령 \ls에서 가능한 별칭을 우회 하는 데 사용ls
  • -F옵션은 링크에 대한 ‘@’표시기를 추가합니다.
  • sed명령은 그 링크를 선택하고 표시를 제거
  • xargs일부 인수로 이전 출력 전달npm ...
  • npm 다음과 함께 호출됩니다.
    • list또는 ls버전이있는 모듈 나열
      • ll나열된 각 모듈에 대한 세부 정보를 얻으려면로 교체하십시오 .
    • -g 글로벌 모듈 및
    • --depth 0 얕은 목록의 경우 (선택 사항)
    • --long false (기본값은 ‘목록’).

문제 : 어떤 이유로 npm 이 현재 나에게 불필요한 항목을 제공합니다 (컬러 없음). 그들은 내가 ” npm unlink ” 했던 것들 일 것 입니다.

현재 npm 경로에있는 ” 전역 적으로 설치된 모든 모듈 목록 경우 다음을 수행하십시오.

npm list -g

추가 요구 사항에 대해 살펴볼 수 있습니다.

npm help folders

전체 파일 시스템을 스캔하지 않는 한 심볼릭 링크를 거꾸로 따라갈 수 없습니다 (npm 특정 질문이 아닙니다).

이름으로 파일과 디렉토리를 빠르게 찾기 위해 locate일반적으로 하루에 한 번 재 작성된 색인에서 작동하는 것을 사용 합니다.

locate '*/node_modules'

거기에서 작업을 시작합니다 ( --regexp옵션으로 검색을 구체화 할 수 있습니다.


답변

나는 내 자신의 도구를 작성한 후에도이 질문을 찾았습니다. 여기서는 완전성을 위해 npm-list-linked 입니다.

계층 구조에서 링크 된 모든 패키지를 반복적으로 따라갈 것입니다. 제 작업에서는 때때로 npm link2-3 레벨 깊이 가있을 수 있습니다. 이렇게하면 정확히 어느 것이 로컬이고 어느 것이 아닌지 알 수 있으므로 놀라움을 피할 수 있습니다.

$ npm-list-linked
Linked packages in /home/user/projects/some-project/
    @prefix/package 0.2.7
        other-package 0.1.2


답변

내가 만든 fs심볼릭 링크를 확인 하는 데 사용하는 Node.js 모듈을 만들었습니다 npm link.

https://www.npmjs.com/package/symlinked

var symlinked = require("symlinked")

console.log(symlinked.names())


답변

나는 나와 다른 사람들이 같은 질문을 많이하는 것을 봅니다. link-status이 정보를 표시하기 위해 호출 한 작은 CLI를 작성했습니다. 다른 사람들에게도 도움이 될 수 있습니다! 여기에서 확인 하세요!