답변:
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
.
( ls -l node_modules ; ls -l node_modules/@* ) | grep ^l
ls -l -R ./node_modules | grep ^l
전역 적으로 연결된 모든 모듈을 나열하려면 다음과 같이 작동합니다 ( https://docs.npmjs.com/cli/ls 문서 ) :
npm ls -g --depth=0 --link=true
그래도 먼저 내 컴퓨터에서 npm 버전을 업데이트해야했습니다.
npm install npm@latest -g
--link=true
. 내 환경 : Win10, NVM = 1.1.7, 현재 Node = 8.14.0
npm unlink <package> -g
구문 분석에 대한 더 나은 대안 ls
은 find
다음과 같이 사용하는 것입니다.
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
옵션으로 검색을 구체화 할 수 있습니다.
-g
내 로컬 / 가장 가까운 임시 종속성 링크를 가져 오지 않고 사용 합니다. 감사!
나는 내 자신의 도구를 작성한 후에도이 질문을 찾았습니다. 여기서는 완전성을 위해 npm-list-linked 입니다.
계층 구조에서 링크 된 모든 패키지를 반복적으로 따라갈 것입니다. 제 작업에서는 때때로 npm link
2-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())
find `npm root -g` -maxdepth 2 -type l
네임 스페이스 패키지를 포함한 글로벌 링크를 표시합니다.
@andrew의 대답은 때때로 작동합니다.
npm ls -g --depth=0 --link=true
하지만 어떤 경우에는 피어 dep 오류로 인해 날아갔습니다. 누군가에게 도움이되기를 바랍니다!
npm -g ls
전 세계 모든 모듈을 나열해야하지만, 나는 그것이 연결리스트 경우 모듈을 모른다