Szukam polecenia, które wyświetli listę nazw globalnych modułów, które mam npm link
do kopii lokalnych, a także ścieżkę lokalną.
W rzeczywistości lista wszystkich zainstalowanych modułów globalnie byłoby jeszcze lepiej, z npm link
„D te oznaczone jakoś.
npm -g ls
powinien zawierać listę wszystkich modułów globalnych, ale nie wiem, czy zawiera listę połączonych modułównpm link
'd. Potrzebuję sposobu, żeby to śledzić.Odpowiedzi:
Czy próbowałeś po prostu wyświetlić
node_modules
zawartość katalogu (np.ls -l node_modules | grep ^l
)? To zwykłe linki symboliczne.Jeśli naprawdę potrzebujesz znaleźć wszystkie linki symboliczne, możesz spróbować czegoś takiego jak
find / -type d -name "node_modules" 2>/dev/null | xargs -I{} find {} -type l -maxdepth 1 | xargs ls -l
.źródło
( ls -l node_modules ; ls -l node_modules/@* ) | grep ^l
ls -l -R ./node_modules | grep ^l
Aby wyświetlić wszystkie globalnie połączone moduły, działa to (dokumentacja https://docs.npmjs.com/cli/ls ):
Musiałem jednak najpierw zaktualizować wersję npm na moim komputerze:
źródło
--link=true
. Moje środowisko: Win10, NVM = 1.1.7, bieżący węzeł = 8.14.0npm unlink <package> -g
Lepszą alternatywą dla analizowania
ls
jest użycie wfind
następujący sposób:Możesz użyć
-maxdepth 1
tylko do przetwarzania pierwszego poziomu katalogu:Możesz użyć,
-ls
aby uzyskać dodatkowe informacje.Na przykład, aby znaleźć moduły węzłów, które są połączone npm:
Oto artykuł, dlaczego parsowanie
ls
nie jest najlepszym pomysłemźródło
Jeśli chcesz mieć ładny kolorowy wydruk
npm list
, możesz polubić:co daje w moim aktualnym placu zabaw reż:
Przyjmuje kilka założeń, ale w większości przypadków powinien działać lub być łatwy do dostosowania dzięki poniższym wyjaśnieniom.
\ls
aby ominąć możliwe aliasy w Twojejls
komendzie-F
opcja dodaje „@” wskaźnik linkised
komenda wybiera te linki i usuwa wskaźnikxargs
część przechodzi poprzedniego wyjścia jako argumentynpm ...
npm
jest wywoływana zlist
lubls
wyświetlić listę modułów z wersjamill
aby uzyskać szczegółowe informacje o każdym wymienionym module.-g
dla modułów globalnych i--depth 0
dla krótkiej listy (opcjonalnie)--long false
(domyślnie z „listą”).Problem: z jakiegoś powodu npm podaje mi w tej chwili obce wpisy (niekolorowane). Byłyby to te, które miałem " npm unlink " ed.
Aby uzyskać „ listę wszystkich zainstalowanych globalnie modułów ” w bieżącej ścieżce npm, po prostu to zrobisz
W przypadku dalszych potrzeb możesz zajrzeć
Nie możesz podążać wstecz za dowiązaniami symbolicznymi, chyba że przeskanujesz cały system plików i (wtedy nie jest to kwestia specyficzna dla npm).
Aby szybko znaleźć pliki i katalogi według nazwy, używam tego,
locate
który działa na indeksie odbudowywanym zwykle raz dziennie.i zacznij od tego miejsca (możesz zawęzić wyszukiwanie za pomocą
--regexp
opcji.źródło
-g
aby uzyskać lokalne / najbliższe przejściowe łącza zależności. Dzięki!Znalazłem to pytanie po tym, jak napisałem również własne narzędzie, tutaj jest dla kompletności: npm-list-linked .
Będzie on również rekurencyjnie podążał za wszystkimi połączonymi pakietami w dół w hierarchii, w mojej pracy czasami możemy mieć
npm link
2-3 poziomy, dzięki czemu można dokładnie zobaczyć, które są lokalne, a które nie, co pozwala uniknąć niespodzianek.źródło
Stworzyłem moduł Node.js, który używa
fs
do sprawdzania linków symbolicznych utworzonych przeznpm link
lub w inny sposób.https://www.npmjs.com/package/symlinked
źródło
Widzę siebie i innych, którzy często mają to samo pytanie. Napisałem dla siebie mały CLI wezwany
link-status
do wyświetlenia tych informacji, może to pomóc też innym! Sprawdź to tutaj!źródło
aby pokazać linki globalne, w tym pakiety w przestrzeni nazw.
Odpowiedź @ Andrew działa czasami:
ale w niektórych przypadkach wysadziłem w błąd peer dep. Mam nadzieję, że to komuś pomoże!
źródło