Я ищу команду, которая перечислит имена глобальных модулей, которые у меня есть npm link
в локальных копиях, а также список локальных путей.
Фактически, список всех глобально установленных модулей был бы даже лучше, если бы модули npm link
d были как-то отмечены .
npm -g ls
должен перечислить все глобальные модули, но я не знаю, перечислены ли в нем связанные модули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
.источник
( ls -l node_modules ; ls -l node_modules/@* ) | grep ^l
ls -l -R ./node_modules | grep ^l
Чтобы перечислить все глобально связанные модули, это работает (документация https://docs.npmjs.com/cli/ls ):
Однако сначала мне пришлось обновить версию npm на моей машине:
источник
--link=true
. Моя среда: Win10, NVM = 1.1.7, текущий узел =npm unlink <package> -g
Лучшая альтернатива синтаксическому анализу
ls
- использоватьfind
вот так:Вы можете использовать
-maxdepth 1
только для обработки первого уровня каталога:Вы можете использовать
-ls
для дополнительной информации.Например, для поиска узловых модулей, связанных npm:
Вот статья, почему синтаксический анализ
ls
- не лучшая идеяисточник
Если вам нужен красивый цветной вывод
npm list
, вам могут понравиться:что дает в моем текущем каталоге игровой площадки:
Он делает несколько предположений, но в большинстве случаев он должен работать или его легко адаптировать с помощью пояснений ниже.
\ls
для обхода возможных псевдонимов вашейls
команды-F
опция добавляет «@» индикатор для ссылокsed
команда выбирает те ссылки и удаляет индикаторxargs
часть проходит предыдущий выходной сигнал в качестве аргументовnpm ...
npm
вызывается сlist
илиls
вывести список модулей с версиямиll
чтобы получить подробную информацию о каждом указанном модуле.-g
для глобальных модулей и--depth 0
для мелкого списка (необязательно)--long false
(по умолчанию со «списком»).Проблема: почему-то в данный момент npm выдает мне посторонние записи (неокрашенные). Это будут те, которые у меня есть " npm unlink " ed.
Для « списка всех глобально установленных модулей » в текущем пути npm просто выполните
Для дальнейших нужд вы можете взглянуть на
Вы не можете следовать символическим ссылкам в обратном направлении, если вы не просканируете всю файловую систему и (тогда это не конкретный вопрос npm).
Для быстрого поиска файлов и каталогов по имени я использую
locate
который работает с индексом, перестраиваемым обычно один раз в день.и начните работать оттуда (вы можете уточнить поиск с помощью
--regexp
option.источник
-g
чтобы получить мои локальные / ближайшие временные ссылки зависимости. Спасибо!Я нашел этот вопрос после того, как написал свой собственный инструмент, вот он для полноты: npm-list-connected .
Он будет рекурсивно следовать за всеми связанными пакетами вниз по иерархии, в моей работе мы иногда можем иметь
npm link
2-3 уровня в глубину, и таким образом вы можете точно увидеть, какие из них являются локальными, а какие нет, избегая сюрпризов.источник
Я создал модуль Node.js, который используется
fs
для проверки символических ссылок, созданных кем-npm link
либо иным образом.https://www.npmjs.com/package/symlinked
источник
Я вижу себя и других, которые часто задают один и тот же вопрос. Я написал для себя небольшой интерфейс командной строки, призванный
link-status
отображать эту информацию, это может помочь другим! Посмотрите здесь!источник
для отображения глобальных ссылок, включая пакеты с пространством имен.
Ответ @andrew работает иногда:
но в некоторых случаях приводил к ошибкам peer dep. Надеюсь, это кому-то поможет!
источник